#endian #nostd #byteorder #embedded #types

no-std endiantype

endiantype is an no-std, endian-aware implementation of primitive types like u8, u16, etc

4 releases

0.1.3 Aug 10, 2021
0.1.2 Aug 10, 2021
0.1.1 Aug 9, 2021
0.1.0 Aug 9, 2021

#235 in No standard library

48 downloads per month

MIT license

15KB
273 lines

Endian Type

Crate API

endiantype is an no-std, endian-aware implementation of primitive types like u8, u16, etc.

All endian types are implemented in a transparent way that it can directly replace the original types with almost zero overhead.

Usage

Add this to your Cargo.toml

endiantype = "0.1.3"

to use in a [no_std] environment, you need to disable default features.

endiantype = { version = "0.1.3", default-features = false}

and import endian-ware types from this crate.

use endiantype::types::*;

Features

Here is some features of endiantype crate.

[no-std] Support

This crate can be used without std support with no requirements or additional features needed as it only relies on core.

Drop-in replacement

This crate provides sufficient default operations for endian-aware types.

For example, you can directly compare a primitive type with a endian-aware type.

use endiantype::*;
let num_le = u16_le::from_native(10);
assert!(num_le < 11);

Other bit-wise ops like &, | and arithmetic ops like +, - are also supported.

use endiantype::*;
let a = u32_le::from_native(1);
let b = u32_be::from_native(2);
assert!(a+b == 3);

No runtime deps

Features