use crate::osm::pbf::blob_iterator::BlobIterator;
use crate::osm::pbf::file_block::FileBlock;
pub struct FileBlockIterator {
    blob_iterator: BlobIterator,
}
impl FileBlockIterator {
    pub(crate) fn new(blob_iterator: BlobIterator) -> FileBlockIterator {
        FileBlockIterator {
            blob_iterator,
        }
    }
}
impl Iterator for FileBlockIterator {
    type Item = FileBlock;
    fn next(&mut self) -> Option<Self::Item> {
        let blob_desc = self.blob_iterator.next()?;
        Some(
            FileBlock::from_blob_desc(&blob_desc).expect(
                format!("Failed to create a file block from blob {} from {:?}",
                    blob_desc.index(),
                    blob_desc.path()).as_str()
            )
        )
    }
}