Fork me on GitHub
摘要: 低头爬山,切勿急功近利。 专注:Linux, Android开发 架构:RISCV和ARM 方向:Secure和System 业余:锻炼好身体,学好英语 阅读全文
posted @ 2021-10-21 22:37 BabyMelvin 阅读(54) 评论(1) 推荐(0) 编辑
摘要: 如果T实现了某个trait,那么整个T类型的&T,也实现了该trait了吗?不是这样的。 为什么这样,例子说明下: trait Speaker { fn speak(&self); } struct BasicSpeaker; impl Speaker for BasicSpeaker { fn s 阅读全文
posted @ 2023-03-29 11:09 BabyMelvin 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 点号操作会有一些神奇的类型转换发生。将auto-referencing,auto-dereferencing和强转直到类型匹配。 有个函数foo有一个参数(self, &self或者&mut self)。如果调用value.foo,在调用合适的函数实现之前,编译器需要决定什么类型的Self.为了更好 阅读全文
posted @ 2023-02-03 21:53 BabyMelvin 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 1.One-Liners 1.strings // 1. 拼接字符串 format!("{x}{y}") // 2.显示Display write!(x, "{y}") // 3. 分隔符分开string,s.split(pattern) s.split("abc"); s.split('/'); 阅读全文
posted @ 2022-09-03 22:42 BabyMelvin 阅读(296) 评论(0) 推荐(0) 编辑
摘要: Rust语法速查小册 #1. 数据结构 通过关键字定义的数据类型和内存位置 struct S{}定义一个命名成员的结构体 struct S {x:T} 定义一个结构体,成员名为x,成员类型为T struct S(T) 定义元组类型结构体,成员.0类型为T struct S 定义零长单元结构体,不占空 阅读全文
posted @ 2022-09-03 18:22 BabyMelvin 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 在Ledger,我们相信是在真安全中的。安全绝不是可以轻视的术语。为了建立安全系统,必须使用安全硬件基础和在这基础实现的安全系统。即使是最安全的代码实现和安全硬件,在评估安全问题时候,没有什么以攻击为导向的思想重要。 这就是为什么在Ledger's Dongon要建立一个内部安全评估实验室。 LD由 阅读全文
posted @ 2022-08-29 22:18 BabyMelvin 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 可以将所有权、借用规则与这些智能指针做一个对比 | Rust 规则 | 智能指针带来的额外规则 | | | | | 一个数据只有一个所有者 | Rc/Arc让一个数据可以拥有多个所有者 | | 要么多个不可变借用,要么一个可变借用 | RefCell实现编译期可变、不可变引用共存 | | 违背规则导 阅读全文
posted @ 2022-08-21 20:49 BabyMelvin 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 一个类型为 T 的对象 foo,如果 T: Deref<Target=U>,那么,相关 foo 的引用&foo在引用的时候会自动转换为&U。 0.解引用 定义一个Deref实例 use std::ops::Deref; struct MyBox<T>(T); impl<T> MyBox<T> { f 阅读全文
posted @ 2022-08-21 20:45 BabyMelvin 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.Copy和Drop 我们无法为一个类型同时实现 Copy 和 Drop 特征。因为实现了 Copy 的特征会被编译器隐式的复制,因此非常难以预测析构函数执行的时间和频率。因此这些实现了 Copy 的类型无法拥有析构函数。 #[derive(Copy)] struct Foo; impl Drop 阅读全文
posted @ 2022-08-21 20:37 BabyMelvin 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1.介绍 方法调用的点操作符看起来简单,实际上非常不简单,它在调用时,会发生很多魔法般的类型转换,例如:自动引用、自动解引用,强制类型转换直到类型能匹配等。 假设有一个方法 foo,它有一个接收器(接收器就是 self、&self、&mut self 参数)。如果调用 value.foo(),编译器 阅读全文
posted @ 2022-08-18 22:35 BabyMelvin 阅读(209) 评论(1) 推荐(0) 编辑
摘要: 现在的compiler与CPU为了最佳化执行效能,必要时可能重新安排执行程式的流程顺序。 1.compiler最佳化可依据CPU的instruction issue数目,执行的latency cycles以及程式流程,在不影响程式上下文结果下重排或简化程式。 2.硬件设计最佳化: multiple 阅读全文
posted @ 2022-01-23 17:27 BabyMelvin 阅读(195) 评论(0) 推荐(0) 编辑