You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.3 KiB
52 lines
2.3 KiB
7 months ago
|
# 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.
|
||
|
|