# Endian Type

`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.0"
```
and import endian-ware types from this crate.
```rust
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.
```rust
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.
```rust
use endiantype::*;
let a = u32_le::from_native(1);
let b = u32_be::from_native(2);
assert!(a+b == 3);
```


