Struct osmpbfreader::reader::OsmPbfReader [] [src]

pub struct OsmPbfReader<R> { /* fields omitted */ }

The object to manage a pbf file.

Methods

impl<R: Read> OsmPbfReader<R>
[src]

[src]

Creates an OsmPbfReader from a Read object.

Important traits for Iter<'a, 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>
[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);
}

[src]

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);

[src]

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);
}

[src]

Extract the Read object.

Consumes the object.

Important traits for Blobs<'a, R>
[src]

Returns an iterator on the blobs of the pbf file.

Important traits for PrimitiveBlocks<'a, R>
[src]

Returns an iterator on the blocks of the pbf file.

Trait Implementations

Auto Trait Implementations

impl<R> Send for OsmPbfReader<R> where
    R: Send

impl<R> Sync for OsmPbfReader<R> where
    R: Sync