midilab 0.2.4

Sysex deserialization and midi controller programming library
Documentation
# midilab
Software library for programming midi controllers via Sysex messages

Device definitions by manufacturer and APIs for sysex message de/serialiation

## Library usage:
Add midilab to your Cargo.toml:

```bash
cargo add midilab
```

### Examples

Parse raw bytes into a Sysex message:
```rust
use midilab::sysex::Sysex;

let bytes: &[u8] = &[0xf0, 0x47, 0x00, 0x35, 0xf7];
let sysex = Sysex::try_from(bytes).unwrap();
assert_eq!(sysex.payload(), &[0x47, 0x00, 0x35]);
```

Deserialize an Akai MPD226 preset acknowledgment:
```rust
use midilab::sysex::Sysex;
use midilab::manufacturer::akai::mpd226::DeviceStatus;

// Deserialize an Akai Mpd226's raw PresetAck bytes into Sysex
let bytes: &[u8] = &[0xf0, 0x47, 0x00, 0x35, 0x11, 0x00, 0x01, 0x00, 0x00, 0xf7];
let sysex = Sysex::try_from(bytes).unwrap();
// Deserialize the Sysex into a DeviceStatus variant
let status = DeviceStatus::try_from(sysex).unwrap();
```

### Re-exports
midilab re-exports `strum::IntoEnumIterator` as `midilab::IntoEnumIterator` so consumers of this
library can take advantage of derived EnumIter features in many of midilab's enums.

## License
Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE]https://github.com/molenick/midilab/blob/main/LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]https://github.com/molenick/midilab/blob/main/LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.