#bit-fields #diagram #latex #proc-macro #deku #attributes #bintex

macro bintex_derive

Create bitfield LaTeX diagrams with the use of the deku library

1 unstable release

0.1.0 Feb 11, 2024

#12 in #deku


Used in bintex

MIT/Apache

7KB
151 lines

bintex

github crates.io docs.rs build status

Create LaTeX bytefield diagrams with the use of rust proc-macros and the deku library.

docs

run $ cargo doc --open

See bintex::attribute for Attribute details and examples.

example

Run $ cargo run && pdflatex sample.tex to create the following illustration from code:

use bintex::{BinTex, BinTexOutput};
use deku::prelude::*;

#[derive(BinTex)]
#[bintex(bit_width = 32)]
struct Ipv6 {
    #[deku(bits = "4")]
    version: u8,
    #[deku(bits = "6")]
    ds: u8,
    #[deku(bits = "2")]
    ecn: u8,
    #[deku(bits = "20")]
    label: u32,
    length: u16,
    next_header: u8,
    hop_limit: u8,
    src: u32,
    dst: u32,
}

Result

Dependencies

~2MB
~50K SLoC