#endianness #io #time

nightly endian

Rust库用于I/O字节序

1个不稳定版本

使用旧的Rust 2015

0.1.3 2015年3月4日

#endianness中排名第48

LGPL-3.0+

15KB
312

rust-endian

Rust I/O字节序

在撰写本文时,有3个Rust库用于字节序

  • endian -- 此库
  • byteorder
  • bswap

libendian

此库为整数添加了4种方法

fn read_be(&self, buf: &mut [u8]) -> Result<usize>;
fn read_le(&self, buf: &mut [u8]) -> Result<usize>;
fn write_be(&mut self, buf: &[u8]) -> Result<usize>;
fn write_le(&mut self, buf: &[u8]) -> Result<usize>;

libbyteorder

那个库为现有的读取器和写入器添加了多种方法

fn read_u8(&mut self) -> Result<u8>;
fn read_i8(&mut self) -> Result<i8>;
fn read_u16<T: ByteOrder>(&mut self) -> Result<u16>;
fn read_i16<T: ByteOrder>(&mut self) -> Result<i16>;
fn read_u32<T: ByteOrder>(&mut self) -> Result<u32>;
fn read_i32<T: ByteOrder>(&mut self) -> Result<i32>;
fn read_u64<T: ByteOrder>(&mut self) -> Result<u64>;
fn read_i64<T: ByteOrder>(&mut self) -> Result<i64>;
fn write_u8(&mut self, n: u8) -> Result<()>;
fn write_i8(&mut self, n: i8) -> Result<()>;
fn write_u16<T: ByteOrder>(&mut self, n: u16) -> Result<()>;
fn write_i16<T: ByteOrder>(&mut self, n: i16) -> Result<()>;
fn write_u32<T: ByteOrder>(&mut self, n: u32) -> Result<()>;
fn write_i32<T: ByteOrder>(&mut self, n: i32) -> Result<()>;
fn write_u64<T: ByteOrder>(&mut self, n: u64) -> Result<()>;
fn write_i64<T: ByteOrder>(&mut self, n: i64) -> Result<()>;

结论

看起来libbyteorder可能是一个更好的选择,但这还有待确定,在此之前,我认为libendian可能有一些有效的用例,其他库没有提供。

依赖关系

~42KB