A pure Rust crate for reading ROS bag files.
```rust use rosbag::{RosBag, Record};
let bag = RosBag::new(path).unwrap();
// create low-level iterator over rosbag records
let mut records = bag.records();
// acquire BagHeader
record, which should be first one
let header = match records.next() {
Some(Ok(Record::BagHeader(bh))) => bh,
_ => panic!("Failed to acquire bag header record"),
};
// get first Chunk
record and iterate over Message
records in it
for record in &mut records {
match record? {
Record::Chunk(chunk) => {
for msg in chunk.itermsgs() {
println!("{}", msg?.time)
}
break;
},
_ => (),
}
}
// jump to index records
records.seek(header.indexpos).unwrap();
for record in records {
println!("{:?}", record?);
}
```
The crate is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.