23 个版本
0.3.0 | 2023年5月20日 |
---|---|
0.2.0 | 2023年5月13日 |
0.1.20 | 2023年4月23日 |
0.1.19 | 2023年2月18日 |
0.1.9 | 2022年12月31日 |
#1994 in 编码
在 4 crates 中使用
57KB
1.5K SLoC
Bytes
用于序列化和反序列化
is useful because is more faster and smaller then json!
But not human readable!
示例
use bytes_kman::prelude::*;
#[derive(Bytes)]
pub struct Package{
id: u16,
message: String
}
pub fn main(){
let pak = Package{
id: 21
message: String::from("This is a message")
};
let mut bytes = pak.to_bytes();
bytes.reverse();
let other = Package::from_bytes(&mut bytes).unwrap();
assert_eq!(pak, other);
}
use bytes_kman::prelude::*;
pub fn main(){
let num = 32u8;
let bytes = num::to_bytes();
assert_eq!(bytes; vec![32])
}
use bytes_kman::prelude::*;
pub fn main(){
let num = 32;
let bytes = num::to_bytes();
assert_eq!(bytes; vec![32, 0, 0, 0])
}
use bytes_kman::prelude::*;
pub fn main(){
let string = "Hello World!".to_string();
let bytes = num::to_bytes();
// this is the string length 'H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd' '!'
// >>>>>>>>>>>>^<<<<<<<<<< ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
assert_eq!(bytes; vec![12, 0, 0, 0, 0, 0, 0, 0, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
}
use bytes_kman::prelude::*;
pub fn main(){
let string = "Hello World!".to_string();
let mut bytes = num::to_bytes();
bytes.reverse(); // when reading is inversed
let other = String::from_bytes(&mut bytes).unwrap() // if don't have enough bytes will result in an error!
// bytes = []
// bytes will be consumed!
// other = "Hello World!"
assert_eq!(string, other)
}
Rust 工具链:稳定版 1.65.0
依赖项
~1.5MB
~35K SLoC