2 个版本

0.1.1 2022 年 3 月 12 日
0.1.0 2022 年 3 月 12 日

#2845解析器实现

Apache-2.0

27KB
509

seqbytes

Latest version Documentation License

seqbytes 包提供了用于按顺序读取字节的特质 ESeqByteReaderSeqByteReader。特质 SeqByteReader 将字节转换为指定的泛型类型,表示为 U,该类型必须实现 SizedNumber。特质 SizedNumber 表示可以转换为字节并从字节转换的类型,具有固定大小的字节。

特质 ESeqByteReader 用于按顺序读取字节,转换为具有特定字节序的类型。转换到的类型必须实现 EndianNumber,它表示可以转换为字节并从字节转换的类型,具有特定的字节序。

实现

当类型实现 Read + Seek 时,默认实现了特质 ESeqByteReaderSeqByteReader

示例

use seqbytes::prelude::*;
use std::io::Cursor;

let a = vec![69, 96, 255, 255, 0x68, 0x65, 0x6C, 0x6C, 0x6F];
let mut cursor = Cursor::new(a);

let num: i32 = cursor.shift().unwrap();
let s = &*cursor.shift_string(5).unwrap();

assert_eq!(num, -40891);
assert_eq!(*s, *"hello");

使用方法

将此添加到您的 Cargo.toml

[dependencies]
seqbytes = "0.1.1"

文档

许可

seqbytes 在 Apache v2.0 许可下分发。

有关详细信息,请参阅 LICENSE.md

无运行时依赖