Provides a macro to allows creation of a simple byte-array backed structs. Such struct has a predefined size and allocated on stack. ## Usage ### Dependency ``` [dependencies] byte-array-struct = "0.2" ``` ### Example ``` // create struct named Address backed by [u8; 24] // basically a shortcut to `pub struct Address([u8; 24]);` byte_array_struct!( pub struct Address(24); ); impl Address { // any additional functionality for Address type } // passed as a value on stack fn send(to: Address) { // ... } fn main() { //accepts hex, which can also be prefixed with 0x let foo = Address::from_str("0123456789abcdef0123456789abcdef0123456789abcdef").unwrap(); send(foo); } ``` ### Provides Macro provides implementation for following traits: - `.deref()` - `.from_str(s)`, which accepts a hex string with the length of target array; may be optionally prefixed with `0x` - `.to_string()` - `.from([u8; ...])` and `.from(&[u8; ...])`, where `...` is the defined size - `.try_from(Vec)` and `.try_from(&[u8])` - `.into(Vec)` and `.into([u8; ...])` - `.serialize` and `.deserialize` for Serde, with `with-serde` feature enabled (not enabled by default) ### Features - `with-serde` to implement serialization/deserialization with Serde. Uses Hex encoded strings.