Something went wrong. Try again.
Zig parser for the OSM PBF file format. jeff.jcollie.pages/osm.zig
Something went wrong. Try again.
12345678910111213141516171819// SPDX-FileCopyrightText: © 2026 Jeffrey C. Ollie// SPDX-License-Identifier: MIT
const std = @import("std");
const OSMPBF = @import("proto/OSMPBF.pb.zig");
pub fn dupe(alloc: std.mem.Allocator, block: *const OSMPBF.PrimitiveBlock, index_: ?u32) !?[]const u8 { const string = try lookup(block, index_) orelse return null; return try alloc.dupe(u8, string);}
pub fn lookup(block: *const OSMPBF.PrimitiveBlock, index_: ?u32) !?[]const u8 { const index = index_ orelse return null; const stringtable = (block.stringtable orelse return null).s.items; if (index >= stringtable.len) return error.StringIndexOutOfRange; return stringtable[@intCast(index)];}