binary-layout 0.1.0

The binary-layout library allows type-safe, inplace, zero-copy access to structured binary data. You define a custom data layout and give it a slice of binary data, and it will allow you to read and write the fields defined in the layout from the binary data without having to copy any of the data. It's similar to transmuting to/from a `#[repr(packed)]` struct, but much safer.
Documentation
Build #383638 2021-05-01 07:18:46

# rustc version rustc 1.53.0-nightly (42816d61e 2021-04-24)

# docs.rs version docsrs 0.6.0 (e85bfdf 2021-04-29)

# build log [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/binary-layout-0.1.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/binary-layout-0.1.0/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "3221225472" "--cpus" "2" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs\"" "-j2" "--" "-Z" "unstable-options" "--emit=invocation-specific" "--resource-suffix" "-20210424-1.53.0-nightly-42816d61e" "--static-root-path" "/" "--cap-lints" "warn" "--disable-per-crate-search", kill_on_drop: false }` [INFO] [stdout] cdcaeef432c8732a246289d29a08b57643c16d60b27bd9dde48fb90b04eed587 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "cdcaeef432c8732a246289d29a08b57643c16d60b27bd9dde48fb90b04eed587", kill_on_drop: false }` [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Compiling paste v1.0.5 [INFO] [stderr] Documenting binary-layout v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unresolved link to `binary_layout::Field` [INFO] [stderr] --> src/lib.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | //! 1. The [Field](binary_layout::Field) API that offers free functions to read/write the data based on an underlying slice of storage (`... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field` [INFO] [stderr] --> src/lib.rs:46:67 [INFO] [stderr] | [INFO] [stderr] 46 | //! This is not the API used in the example above, see [Field](binary_layout::Field) for an API example. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView` [INFO] [stderr] --> src/lib.rs:47:24 [INFO] [stderr] | [INFO] [stderr] 47 | //! 2. The [FieldView](binary_layout::FieldView) API that wraps a slice of storage data and remembers it in a `View` object, allowing acc... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView` [INFO] [stderr] --> src/lib.rs:47:274 [INFO] [stderr] | [INFO] [stderr] 47 | ...the example above. See [FieldView](binary_layout::FieldView) for another example. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field` [INFO] [stderr] --> src/lib.rs:86:35 [INFO] [stderr] | [INFO] [stderr] 86 | //! For these fields, the [Field](binary_layout::Field) API offers [Field::read](binary_layout::Field::read), [Field::write](binary_layou... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::read` [INFO] [stderr] --> src/lib.rs:86:82 [INFO] [stderr] | [INFO] [stderr] 86 | ...::Field) API offers [Field::read](binary_layout::Field::read), [Field::write](binary_layout::Field::write) and the [FieldView](binary_... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::write` [INFO] [stderr] --> src/lib.rs:86:126 [INFO] [stderr] | [INFO] [stderr] 86 | ...out::Field::read), [Field::write](binary_layout::Field::write) and the [FieldView](binary_layout::FieldView) API offers [FieldView::re... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView` [INFO] [stderr] --> src/lib.rs:86:175 [INFO] [stderr] | [INFO] [stderr] 86 | ...:Field::write) and the [FieldView](binary_layout::FieldView) API offers [FieldView::read](binary_layout::FieldView::Read) and [FieldVi... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::Read` [INFO] [stderr] --> src/lib.rs:86:230 [INFO] [stderr] | [INFO] [stderr] 86 | ...w) API offers [FieldView::read](binary_layout::FieldView::Read) and [FieldView::write](binary_layout::FieldView::write). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::write` [INFO] [stderr] --> src/lib.rs:86:285 [INFO] [stderr] | [INFO] [stderr] 86 | ...w::Read) and [FieldView::write](binary_layout::FieldView::write). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field` [INFO] [stderr] --> src/lib.rs:89:35 [INFO] [stderr] | [INFO] [stderr] 89 | //! For these fields, the [Field](binary_layout::Field) API offers [Field::data](binary_layout::Field::data), [Field::data_mut](binary_la... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::data` [INFO] [stderr] --> src/lib.rs:89:82 [INFO] [stderr] | [INFO] [stderr] 89 | ...::Field) API offers [Field::data](binary_layout::Field::data), [Field::data_mut](binary_layout::Field::data_mut), and the [FieldView](... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::data_mut` [INFO] [stderr] --> src/lib.rs:89:129 [INFO] [stderr] | [INFO] [stderr] 89 | ...Field::data), [Field::data_mut](binary_layout::Field::data_mut), and the [FieldView](binary_layout::FieldView) API offers [FieldView::... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView` [INFO] [stderr] --> src/lib.rs:89:182 [INFO] [stderr] | [INFO] [stderr] 89 | ...ld::data_mut), and the [FieldView](binary_layout::FieldView) API offers [FieldView::data](binary_layout::FieldView::data) and [FieldVi... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::data` [INFO] [stderr] --> src/lib.rs:89:237 [INFO] [stderr] | [INFO] [stderr] 89 | ...w) API offers [FieldView::data](binary_layout::FieldView::data) and [FieldView::data_mut](binary_layout::FieldView::data_mut). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::data_mut` [INFO] [stderr] --> src/lib.rs:89:295 [INFO] [stderr] | [INFO] [stderr] 89 | ...ta) and [FieldView::data_mut](binary_layout::FieldView::data_mut). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field` [INFO] [stderr] --> src/lib.rs:94:35 [INFO] [stderr] | [INFO] [stderr] 94 | //! For these fields, the [Field](binary_layout::Field) API offers [Field::data](binary_layout::Field::data), [Field::data_mut](binary_la... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::data` [INFO] [stderr] --> src/lib.rs:94:82 [INFO] [stderr] | [INFO] [stderr] 94 | ...::Field) API offers [Field::data](binary_layout::Field::data), [Field::data_mut](binary_layout::Field::data_mut) and the [FieldView](b... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::Field::data_mut` [INFO] [stderr] --> src/lib.rs:94:129 [INFO] [stderr] | [INFO] [stderr] 94 | ...Field::data), [Field::data_mut](binary_layout::Field::data_mut) and the [FieldView](binary_layout::FieldView) API offers [FieldView::d... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView` [INFO] [stderr] --> src/lib.rs:94:181 [INFO] [stderr] | [INFO] [stderr] 94 | ...eld::data_mut) and the [FieldView](binary_layout::FieldView) API offers [FieldView::data](binary_layout::FieldView::data), [FieldView:... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::data` [INFO] [stderr] --> src/lib.rs:94:236 [INFO] [stderr] | [INFO] [stderr] 94 | ...w) API offers [FieldView::data](binary_layout::FieldView::data), [FieldView::data_mut](binary_layout::FieldView::data_mut) and [FieldV... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::data_mut` [INFO] [stderr] --> src/lib.rs:94:291 [INFO] [stderr] | [INFO] [stderr] 94 | ...:data), [FieldView::data_mut](binary_layout::FieldView::data_mut) and [FieldView::extract](binary_layout::FieldView::extract). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `binary_layout::FieldView::extract` [INFO] [stderr] --> src/lib.rs:94:352 [INFO] [stderr] | [INFO] [stderr] 94 | ..._mut) and [FieldView::extract](binary_layout::FieldView::extract). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `binary_layout` in scope [INFO] [stderr] [INFO] [stderr] warning: 23 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.96s [INFO] running `Command { std: "docker" "inspect" "cdcaeef432c8732a246289d29a08b57643c16d60b27bd9dde48fb90b04eed587", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cdcaeef432c8732a246289d29a08b57643c16d60b27bd9dde48fb90b04eed587", kill_on_drop: false }` [INFO] [stdout] cdcaeef432c8732a246289d29a08b57643c16d60b27bd9dde48fb90b04eed587