3 个版本
使用旧的 Rust 2015
0.3.31 | 2016 年 12 月 24 日 |
---|---|
0.3.3 | 2016 年 12 月 24 日 |
0.3.2 | 2016 年 7 月 1 日 |
#365 in #protobuf
4KB
51 行
pbuf
从/向实现了 protobuf 读写操作的任何东西进行读写...
示例假设 Msg
是您的 protobuf,msg.rs 是它所在的位置,有关如何从 .proto
文件生成 .rs
的信息,请参阅 rust-protobuf。
添加到 Cargo.toml
pbuf = "0.3.2"
读取示例
extern crate pbuf;
extern crate protobuf;
use std::io::prelude::*;
use std::io::{BufReader, self};
use std::fs::File;
mod msg;
use msg::Msg;
use pbuf::read_pbuf;
let mut reader = Box::new(BufReader::new(io::stdin()));
// To read from file
// let mut reader = Box::new(BufReader::new(File::open (&<file pointer>).unwrap()))
// Reads entire buffer and fill
let mut msgs: Vec<Msg> = read_pbuf(&mut reader);
写入示例
extern crate pbuf;
extern crate protobuf;
use std::io::prelude::*;
use std::io::{BufWriter, self};
use std::fs::File;
mod msg;
use msg::Msg;
use pbuf::write_pbuf;
let mut writer = Box::new(BufWriter::new(io::stdout()));
// To write to file
// let mut writer = Box::new(BufWriter::new(File::create(&<file pointer>).unwrap()))
for msg in msgs.iter() {
write_pbuf(msg, &mut writer);
}
依赖关系
~1.5MB
~31K SLoC