13个版本 (6个稳定版)
2.1.1 | 2024年1月14日 |
---|---|
2.1.0 | 2023年12月31日 |
2.0.0 | 2023年10月14日 |
1.2.0 | 2023年1月1日 |
0.8.0 | 2022年5月1日 |
#606 在 编码 分类中
在 7 个crate中使用 7 个crate (6个直接使用)
14KB
272 行
Astro Format
Astro Format是一个用于在实现类型数组和单个缓冲区之间进行转码的库。
作者
用法
API
编码
encode<T, I>(可迭代:I) -> 结果<Vec<u8>, Box<dyn Error>>
- 界限 -> T: IntoBytes, I: IntoIterator<Item = T>
let list: Vec<&[u8]> = vec![&[1,2,3], &[4,5,6], &[7,8,9]];
let encoded = astro_format::encode(list).unwrap();
解码
decode<'a, T, B>(缓冲区: &'aB) -> 结果<Vec<T>, Box<dynstd::error::Error>>
- 界限 -> T: TryFromBytes<'a>, B: AsRef<[u8]>
let decoded: Vec<&[u8]> = astro_format::decode(&encoded).unwrap();
IntoBytes
IntoBytes特性提供了一种将各种数据类型转换为字节数组(Vec)的机制。它是一个多功能的特性,用于序列化目的,促进了将原始数据类型、字符串甚至字符转换为字节表示的转换。
pub trait IntoBytes {
fn into_bytes(&self) -> Vec<u8>;
}
TryFromBytes
TryFromBytes特性旨在将字节数组(&[u8])转换回各种数据类型。它在需要将序列化为字节的序列化数据反序列回原始形式或可使用形式的情况下非常有用。
pub trait TryFromBytes<'a>: Sized {
fn try_from_bytes(value: &'a [u8]) -> Result<Self, Box<dyn std::error::Error>>;
}
IntoBytes & TryFromBytes 类型支持
- 无符号和有符号整数
- 字符串和Str
- 字节数组和切片
- 字符
许可证
MIT许可证
版权所有 Stelar Labs
以下条件下,任何人获得本软件及其相关文档文件(“软件”)的副本,均可免费使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许软件提供方进行上述操作:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
免责声明
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是由于合同行为、侵权或其他原因引起的,这些责任源自、产生于或与软件或软件的使用或其他方式有关。