Skip to content
/ rust-zc Public

Rust library providing `Zc` for self-referential zero-copy structures

License

Notifications You must be signed in to change notification settings

avitex/rust-zc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status Crate Docs

rust-zc

Rust library providing Zc for self-referential zero-copy structures.
Documentation hosted on docs.rs.

zc = "0.4"

Usage

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])
    )
}

Testing

Run standard tests:

cargo test

Run miri tests:

cargo miri test --test test_zc

About

Rust library providing `Zc` for self-referential zero-copy structures

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages