Expand description
Jcers
A Encode/Decode lib for Jce.
Features
derive
: derive macro support
How to use
use jcers::{JceGet, JcePut};
#[derive(Debug, Default, JceGet, JcePut)]
pub struct YouJceStruct { // only support NamedStruct
#[jce(0)] // jce tag
pub a_named_field: u8, // a field
}
let s: YouJceStruct = jcers::from_buf(&mut buf).unwrap(); // buf should impl bytes::Buf
JceType
JceCode | JceType | RustType |
---|---|---|
0 | u8 | u8 |
1 | i16 | i16 |
2 | i32 | i32 |
3 | i64 | i64 |
4 | f32 | f32 |
5 | f64 | f64 |
6 | ShortString | String |
7 | LongString | String |
8 | Map | HashMap<K, V> |
9 | List | Vec<V> |
10 | Struct | T |
11 | StructEnd | - |
12 | Empty | T::default() |
13 | bytes | bytes::Bytes |
Other
u16
will be encoded asi32
u32
will be encoded asi64
u16
andu32
can’t be decoded from jce
Structs
Enums
Errors
Key type for jce map
Jce Types
Value type covers all types in jce
Traits
Functions
Read data from Buf
Read data as a anonymous struct and get the given tag value
Unbox a JceStruct and get the given tag value