| # macaddr |
| |
| > MAC address types for Rust |
| |
| [](https://crates.io/crates/macaddr) |
| [](https://docs.rs/macaddr) |
| [](https://github.com/svartalf/rust-macaddr/actions) |
| [](https://coveralls.io/github/svartalf/rust-macaddr?branch=master) |
|  |
|  |
|  |
| |
| This crate provides types for a [MAC address](https://en.wikipedia.org/wiki/MAC_address) |
| identifiers, both in IEEE *EUI-48* and *EUI-64* formats. |
| |
| It is like a [`std::net::SocketAddr`](https://doc.rust-lang.org/std/net/enum.SocketAddr.html) enum with a |
| [`std::net::SocketAddrV4`](https://doc.rust-lang.org/std/net/struct.SocketAddrV4.html) and |
| [`std::net::SocketAddrV6`](https://doc.rust-lang.org/std/net/struct.SocketAddrV6.html) members, |
| but for MAC addresses instead. |
| |
| Obviously, MAC address can be represented as a `[u8; 6]` or `[u8; 8]`, |
| but it is error-prone and inconvenient, so here they are — |
| [MacAddr6](https://docs.rs/macaddr/latest/macaddr/struct.MacAddr6.html) and |
| [MacAddr8](https://docs.rs/macaddr/latest/macaddr/struct.MacAddr8.html) |
| structs with helpful methods and standard Rust traits implementations, |
| intended to be the first-class Rust objects. |
| |
| And it is `serde`- and `no_std`-friendly also! |
| |
| ## Installation |
| |
| Add this to your `Cargo.toml` |
| |
| ```toml |
| [dependencies] |
| macaddr = "1.0" |
| ``` |
| |
| ## Usage |
| |
| Check out the [documentation](https://docs.rs/macaddr) for each type |
| available, all of them have a plenty of examples. |
| |
| ## License |
| |
| Licensed under either of [Apache License 2.0](https://github.com/svartalf/rust-macaddr/blob/master/LICENSE-APACHE) |
| or [MIT license](https://github.com/svartalf/rust-macaddr/blob/master/LICENSE-MIT) at your option. |
| |
| Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, |
| as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. |
| |