2 个版本
新 0.1.1 | 2024 年 8 月 18 日 |
---|---|
0.1.0 | 2024 年 8 月 18 日 |
#6 in #u8
32KB
100 行
memprint()
memprint 提供了一个单例 MemPrint
trait (包括为其定义的 derive 宏!),
它允许你打印类型的底层内存布局。
示例
这里有你可以使用的新发现的力量
use memprint::MemPrint;
#[derive(MemPrint)]
struct MyStruct {
c: u8,
a: i32,
b: f32,
}
impl MyStruct {
fn new(a: i32, b: f32, c: u8) -> Self {
Self { a, b, c }
}
}
fn main() {
let struc = MyStruct::new(42, 3.14, b'A');
// provides a detailed printout of a single struct
MyStruct::memprint(&struc);
let mut vec = Vec::new();
vec.push(MyStruct::new(42, 3.14, b'A'));
vec.push(MyStruct::new(69, 2.71, b'B'));
vec.push(MyStruct::new(1337, 1.41, b'C'));
vec.push(MyStruct::new(9001, 0.0, b'D'));
vec.push(MyStruct::new(80085, -1.0, b'E'));
println!("\n\n");
// prints a colour coded block of memory, representing the elements of the slice
MyStruct::memprint_block(&vec);
}
todos
- 添加对枚举和联合体的支持
- 如果结构体中的任何字段也是具有 MemPrint trait 的结构体,则使用彩色打印输出
依赖项
~0.3–10MB
~60K SLoC