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

Download history • Rust 包仓库 14/week @ 2024-03-31 • Rust 包仓库 8/week @ 2024-04-07 • Rust 包仓库 36/week @ 2024-04-14 • Rust 包仓库 26/week @ 2024-04-21 • Rust 包仓库 1/week @ 2024-04-28 • Rust 包仓库 4/week @ 2024-05-12 • Rust 包仓库 2/week @ 2024-05-19 • Rust 包仓库 4/week @ 2024-05-26 • Rust 包仓库 25/week @ 2024-06-02 • Rust 包仓库 2/week @ 2024-06-09 • Rust 包仓库 13/week @ 2024-06-16 • Rust 包仓库 9/week @ 2024-06-23 • Rust 包仓库 6/week @ 2024-06-30 • Rust 包仓库 30/week @ 2024-07-07 • Rust 包仓库

每月 59 次下载
用于 zc

MIT 许可证

8KB
142

Build Status Coverage Status Crate Docs

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