4个版本 (破坏性更新)
0.4.0 | 2021年2月18日 |
---|---|
0.3.0 | 2021年1月20日 |
0.2.0 | 2020年12月23日 |
0.1.0 | 2020年12月8日 |
#22 in #self-referential
每月 59 次下载
用于 zc
8KB
142 行
rust-zc
Rust库,提供Zc
以支持自引用零拷贝结构。
文档托管在docs.rs。
zc = "0.4"
使用方法
use zc::Dependant;
#[derive(PartialEq, Debug, Dependant)]
pub struct StructWithBytes<'a>(&'a [u8]);
impl<'a> From<&'a [u8]> for StructWithBytes<'a> {
fn from(bytes: &'a [u8]) -> Self {
Self(&bytes[1..])
}
}
fn main() {
let owner = vec![1, 2, 3];
let data = zc::from!(owner, StructWithBytes, [u8]);
assert_eq!(
data.get::<StructWithBytes>(),
&StructWithBytes(&[2, 3])
)
}
测试
运行标准测试
cargo test
运行miri测试
cargo miri test --test test_zc
依赖项
~1.5MB
~35K SLoC