| Crates.io | lib-endian |
| lib.rs | lib-endian |
| version | 0.1.0 |
| created_at | 2024-05-04 14:49:27.873097+00 |
| updated_at | 2024-05-04 14:49:27.873097+00 |
| description | The simplest library for storing a value while handling byte order or for obtaining the byte order of the current target. |
| homepage | |
| repository | https://github.com/wzh19960613/rust-endian |
| max_upload_size | |
| id | 1229631 |
| size | 5,583 |
This crate is the simplest library for storing a value while handling byte order or for obtaining the byte order of the current target.
Endian of current target by Endian::NATIVE.use lib_endian::Endian;
const NE: Endian = Endian::NATIVE;
Endian or a reversed one by Endian::native_or_reversed(bool).use lib_endian::Endian;
const REVERSE: bool = true;
const NE_REV: Endian = Endian::native_or_reversed(REVERSE);
assert_eq!(NE_REV, Endian::NATIVE.reverse());
const NE: Endian = Endian::native_or_reversed(!REVERSE);
assert_eq!(NE, Endian::NATIVE);
Endian by .reverse() or !:use lib_endian::Endian;
const BE: Endian = Endian::Little.reverse();
let le = !Endian::Big;
assert_eq!(BE, !le);
Endian by .is(...), == or !=:use lib_endian::Endian;
const BE: Endian = Endian::Big;
const EQ: bool = BE.is(Endian::Big);
const NEQ: bool = !Endian::Little.is(BE);
let eq = Endian::Big == BE;
let neq = BE != Endian::Little;
assert!(EQ & NEQ & eq & neq);
You Can't Use !, == or != in
Constant Expressions
because they are implemented by traits,
which, at least in Rust version 1.78.0, do not contain const fn.
So in
Constant Expressions,
use v.reverse() to replace !v,
a.is(b) to replace a==b,
!a.is(b) to replace a!=b.