map_struct 0.2.0

A rust library to map raw data to a struct.
Documentation
# map_struct

A rust library to map raw data to a struct.

# Usage

In `Cargo.toml`,

```toml
[dependencies]
map_struct = "0.1"
```

Implement unsafe `Mappable` trait to the struct to be mapped to a raw data:

```rust
#[repr(C)]
struct Hoge {
    a: u8,
    b: u8,
    c: u16,
}

unsafe impl Mappable for Hoge {}
```

Call `mapped`:

```rust
// mapped returns Option<(&Self, &[u8])>
Hoge::mapped(&[0x2, 0x3, 0x4, 0x5, 0x6])
```

`mapped` returns `None` if the argument length is not enough for the struct.
It otherwise returns the tuple of the reference to the mapped struct and the rest of the data.

We also have a inverse method for `mapped`, `as_bytes`. The usage is following.

```rust
let hoge = Hoge::mapped(&[0x2, 0x3, 0x4, 0x5, 0x6]).unwrap().0;
assert!(hoge.as_bytes() == &[0x2, 0x3, 0x4, 0x5]);
```