rsnl 0.2.0

Interface for working with core libnl
Documentation
#[macro_use]
extern crate rsnl;

fn main() {
	let mut nls = rsnl::socket::alloc().unwrap();

    rsnl::socket::connect(&mut nls, 30);
	let buf = 0;

	rsnl::socket::send_simple(&nls, 0xfa, 0, &buf, 0);


    let mut msg = rsnl::message::alloc().unwrap();

    let code = b"Foobar\0";
    let r = rsnl::message::append(&mut msg, &code, 7, 0);
    println!("Value: {}", r);

    match rsnl::message::put(&mut msg, 1,1,3,0,0) {
        true => println!("Added header"),
        false => println!("Failed to add header")
    }

    println!("payload len: {}", rsnl::message::data_len(&msg));

    let mut nldata: rsnl::message::NetlinkData<u32> = rsnl::message::NetlinkData::new();

    let d: u32 =  4004;
    nldata.set(&d);


    let q = NlaPutU32!(&mut msg, 0, &nldata);
    println!("Put: {}", q);
    println!("payload len: {}", rsnl::message::data_len(&msg));
    let p = NlaPutU32!(&mut msg, 0, &nldata);
    println!("Put: {}", p);

    println!("payload len: {}", rsnl::message::data_len(&msg));

    let f : rsnl::message::NetlinkData<u32> =  rsnl::message::NetlinkData::with_data(&d);

    let val = f.get();

    println!("Data: {}", val.unwrap());
}