lib-endian

Crates.iolib-endian
lib.rslib-endian
version0.1.0
sourcesrc
created_at2024-05-04 14:49:27.873097
updated_at2024-05-04 14:49:27.873097
descriptionThe simplest library for storing a value while handling byte order or for obtaining the byte order of the current target.
homepage
repositoryhttps://github.com/wzh19960613/rust-endian
max_upload_size
id1229631
size5,583
Wzh (wzh19960613)

documentation

README

lib-endian

This crate is the simplest library for storing a value while handling byte order or for obtaining the byte order of the current target.

Examples

  • Get the Endian of current target by Endian::NATIVE.
use lib_endian::Endian;
const NE: Endian = Endian::NATIVE;
  • Get a 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);
  • Reverse a Endian by .reverse() or !:
use lib_endian::Endian;

const BE: Endian = Endian::Little.reverse();
let le = !Endian::Big;
assert_eq!(BE, !le);
  • Compare two 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);

Attention

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.

Commit count: 1

cargo fmt