[−][src]Struct osmpbfreader::reader::OsmPbfReader
The object to manage a pbf file.
Methods
impl<R: Read> OsmPbfReader<R>
[src]
pub fn new(r: R) -> OsmPbfReader<R>
[src]
Creates an OsmPbfReader from a Read object.
ⓘImportant traits for Iter<'a, R>pub fn iter(&mut self) -> Iter<R>
[src]
Returns an iterator on the OsmObj of the pbf file.
#Example
let mut pbf = osmpbfreader::OsmPbfReader::new(std::io::empty()); for obj in pbf.iter().map(Result::unwrap) { println!("{:?}", obj); }
ⓘImportant traits for ParIter<'a, R>pub fn par_iter<'a>(&'a mut self) -> ParIter<'a, R>
[src]
Returns a parallel iterator on the OsmObj of the pbf file.
Several threads decode in parallel the file. The memory and CPU usage are guaranteed to be bounded even if the caller stop consuming items.
#Example
let mut pbf = osmpbfreader::OsmPbfReader::new(std::io::empty()); for obj in pbf.par_iter().map(Result::unwrap) { println!("{:?}", obj); }
pub fn rewind(&mut self) -> Result<()> where
R: Seek,
[src]
R: Seek,
Rewinds the pbf file to the begining.
Useful if you want to read several consecutive times the same file.
Example
let mut cursor = std::io::Cursor::new([0, 0, 0]); cursor.set_position(2); let mut pbf = osmpbfreader::OsmPbfReader::new(cursor); pbf.rewind().unwrap(); assert_eq!(pbf.into_inner().position(), 0);
pub fn get_objs_and_deps<F>(
&mut self,
pred: F
) -> Result<BTreeMap<OsmId, OsmObj>> where
R: Seek,
F: FnMut(&OsmObj) -> bool,
[src]
&mut self,
pred: F
) -> Result<BTreeMap<OsmId, OsmObj>> where
R: Seek,
F: FnMut(&OsmObj) -> bool,
This function give you the ability to find all the objects validating a predicate and all there dependencies. The file will be decoded in parallel.
Example
If you want to extract all the administrative boundaries and all there dependencies you can do something like that:
fn is_admin(obj: &osmpbfreader::OsmObj) -> bool { // get relations with tags[boundary] == administrative obj.is_relation() && obj.tags().contains("boundary", "administrative") } let mut pbf = osmpbfreader::OsmPbfReader::new(std::io::Cursor::new([])); let objs = pbf.get_objs_and_deps(is_admin).unwrap(); for (id, obj) in &objs { println!("{:?}: {:?}", id, obj); }
pub fn into_inner(self) -> R
[src]
Extract the Read object.
Consumes the object.
ⓘImportant traits for Blobs<'a, R>pub fn blobs(&mut self) -> Blobs<R>
[src]
Returns an iterator on the blobs of the pbf file.
ⓘImportant traits for PrimitiveBlocks<'a, R>pub fn primitive_blocks(&mut self) -> PrimitiveBlocks<R>
[src]
Returns an iterator on the blocks of the pbf file.
Auto Trait Implementations
impl<R> Send for OsmPbfReader<R> where
R: Send,
R: Send,
impl<R> Sync for OsmPbfReader<R> where
R: Sync,
R: Sync,
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,