Something went wrong. Try again.
Zig parser for the OSM PBF file format. jeff.jcollie.pages/osm.zig
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849// SPDX-FileCopyrightText: © 2026 Jeffrey C. Ollie// SPDX-License-Identifier: MIT
const PrimitiveBlock = @This();
const std = @import("std");
const OSMPBF = @import("proto/OSMPBF.pb.zig");
const DenseNodeIterator = @import("DenseNodeIterator.zig");const PrimitiveGroup = @import("PrimitiveGroup.zig");
block: OSMPBF.PrimitiveBlock,
pub fn init(block: OSMPBF.PrimitiveBlock) PrimitiveBlock { return .{ .block = block, };}
pub const PrimitiveBlockIterator = struct { block: *const OSMPBF.PrimitiveBlock, index: usize,
pub fn init(block: *const OSMPBF.PrimitiveBlock) PrimitiveBlockIterator { return .{ .block = block, .index = 0, }; }
pub fn next(self: *PrimitiveBlockIterator) ?PrimitiveGroup { if (self.index >= self.block.primitivegroup.items.len) return null; const group = &self.block.primitivegroup.items[self.index]; self.index += 1; return .{ .block = self.block, .group = group, }; }};
pub fn iterator(self: *const PrimitiveBlock) PrimitiveBlockIterator { return .{ .block = &self.block, .index = 0, };}