kf-protocol 2.0.3

Native Rust implementation of kafka protocol
Documentation
use std::io::Cursor;
use kf_protocol::derive::Encode;
use kf_protocol::derive::Decode;
use kf_protocol::Encoder;
use kf_protocol::Decoder;


#[derive(Encode,Default,Decode,Debug)]
pub struct Parent  {
    child: Option<Child>
}

#[derive(Encode,Decode, Default, Debug)]
pub struct Child {
    flag: bool
}


#[test]
fn test_encode() {

    let mut v1 = Parent::default();
    let mut child = Child::default();
    child.flag = true;
    v1.child = Some(child);
    let mut src = vec![];
    let result = v1.encode(&mut src,0);
    assert!(result.is_ok());
    assert_eq!(src.len(),2);
    assert_eq!(src[0],0x01);
    assert_eq!(src[1],0x01);
    
}


#[test]
fn test_decode() {

    let data = [
        0x01, 0x01
    ];

    let mut buf = Cursor::new(data);

    let result = Parent::decode_from(&mut buf,0);
    assert!(result.is_ok());
    let val = result.unwrap();
    assert!(val.child.is_some());
}