Crates.io | lib-endian |
lib.rs | lib-endian |
version | 0.1.0 |
source | src |
created_at | 2024-05-04 14:49:27.873097 |
updated_at | 2024-05-04 14:49:27.873097 |
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
.