2 个版本
0.1.1 | 2022 年 3 月 12 日 |
---|---|
0.1.0 | 2022 年 3 月 12 日 |
#2845 在 解析器实现
27KB
509 行
seqbytes
seqbytes 包提供了用于按顺序读取字节的特质 ESeqByteReader
和 SeqByteReader
。特质 SeqByteReader
将字节转换为指定的泛型类型,表示为 U
,该类型必须实现 SizedNumber
。特质 SizedNumber
表示可以转换为字节并从字节转换的类型,具有固定大小的字节。
特质 ESeqByteReader
用于按顺序读取字节,转换为具有特定字节序的类型。转换到的类型必须实现 EndianNumber
,它表示可以转换为字节并从字节转换的类型,具有特定的字节序。
实现
当类型实现 Read
+ Seek
时,默认实现了特质 ESeqByteReader
和 SeqByteReader
。
示例
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"
文档
- docs.rs 文档
许可
seqbytes 在 Apache v2.0 许可下分发。
有关详细信息,请参阅 LICENSE.md。