Google Protocol Buffers encoding and decoding
🚧 🚧 🚧 🚧 🚧 Under construction - DO NOT USE 🚧 🚧 🚧 🚧 🚧
Install the Python package pbtools and use it to generate Rust source
code from protobuf specification(s). Add the generated files to your
projects crate. Add this crate as a dependency in your project's
Cargo.toml file and you should be good to go.
🚧 🚧 🚧 🚧 🚧 Under construction - DO NOT USE 🚧 🚧 🚧 🚧 🚧
Example usage
use address_book::{AddressBook, Person};
use address_book::person::{PhoneNumber, PhoneType};
fn main() {
let mut address_book = AddressBook {
people: vec![
Person {
name: String::from("Kalle Kula"),
id: 56,
email: String::from("kalle.kula@foobar.com"),
phones: vec![
PhoneNumber {
number: String::from("+46701232345"),
type_: PhoneType::HOME
},
PhoneNumber {
number: String::from("+46999999999"),
type_: PhoneType::WORK
}
]
}
]
};
let encoded = address_book.encode();
println!("Encoded: {:?}", encoded);
address_book = Default::default();
match address_book.decode(encoded) {
Ok(()) => println!("Ok!"),
Err(message) => println!("Error: {}", message)
}
println!("Decoded:\n{:#?}", address_book);
}