Rust-Jce
jce is a Jce encoding/decoding implementation for the
Rust programing language.
Why jce?
- Written in pure rust
- Easy-to-use
Structs
use jce::JceStruct;
#[derive(JceStruct, PartialEq, Debug)]
struct Person {
name: String, age: u8, #[jce(tag = "5")]
male: bool, phone: u64, #[jce(tag = "11")]
home: Home, }
#[derive(JceStruct, PartialEq, Debug)]
struct Home {
location: String, }
fn main() {
let person = Person {
name: "Jack".into(),
age: 12,
male: true,
phone: 1145141919810,
home: Home {
location: "下北泽".into()
}
};
let mut b = vec![0u8; 0];
person.encode(&mut b);
println!("{:?}", &*b);
let decode = Person::decode(&*b).unwrap();
assert_eq!(person, decode);
}
Fields
| Jce Type |
Rust Type |
| BYTE |
i8 / u8 |
| SHORT |
i16 / u16 |
| INT |
i32 / u32 |
| LONG |
i64 / u64 |
| FLOAT |
f32 |
| DOUBLE |
f64 |
| SHORT_BYTES / LONG_BYTES |
Vec<u8> / Bytes / String |
| MAP |
HashMap<K, V> |
| LIST |
Vec<T> |
| STRUCT_START + STRUCT_END |
JceStruct |
| EMPTY |
Option<T> |
| SINGLE_LIST |
Vec<u8> / Bytes |