pub trait JceStruct: Sized {
fn encode_raw<B: BufMut>(&self, buf: &mut B);
fn encoded_len(&self) -> usize;
fn decode_raw<B: Buf>(buf: &mut B, to_end: bool) -> DecodeResult<Self>;
fn encode<B: BufMut>(&self, buf: B) -> EncodeResult<()> { ... }
fn decode<B: Buf>(buf: B) -> DecodeResult<Self> { ... }
}