tiny.zen.parseFootnotes
Defined in tiny.zen.
Source
Source: lib/zen/src/footnote/parse.zig:6
zig
pub fn parse(storage: *storage_mod.Storage, source: []const u8) model.Error!model.Set { const regions = try storage.acquire(source); var definition_index: usize = 0; var joined_text_index: usize = 0; var current_index: ?usize = null; var current_joined_start: ?usize = null; var iterator = scan.Iterator.init(source); while (iterator.next()) |event| switch (event) { .definition => |definition| { const active = findActive(regions.definitions[0..definition_index], definition.key) == null; regions.definitions[definition_index] = .{ .key = definition.key, .text = definition.text, .active = active, }; current_index = definition_index; current_joined_start = null; definition_index += 1; }, .continuation => |text| { const index = current_index orelse unreachable; const definition = ®ions.definitions[index]; if (current_joined_start == null) { current_joined_start = joined_text_index; if (definition.text.len != 0) { copy(regions.joined_text, &joined_text_index, definition.text); regions.joined_text[joined_text_index] = ' '; joined_text_index += 1; } } else { regions.joined_text[joined_text_index] = ' '; joined_text_index += 1; } copy(regions.joined_text, &joined_text_index, text); definition.text = regions.joined_text[current_joined_start.?..joined_text_index]; }, }; std.debug.assert(definition_index == regions.plan.definitions); std.debug.assert(joined_text_index == regions.plan.joined_text_bytes); return .{ .definitions = regions.definitions };}Source: lib/zen/src/root.zig:137
zig
/// Parses into active storage; the set borrows it until `reset`.pub const parseFootnotes = footnote.parse;Also reachable as
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |