tiny.zen.FrontmatterPlan
Defined in tiny.zen.
API (9)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/zen/src/frontmatter/plan.zig:18
zig
pub const Plan = struct { input_bytes: usize, metadata_start: usize, metadata_end: usize, body_start: usize, pairs: usize, continuation_bytes: usize, projection: MetadataProjection, pub fn inspect(markdown: []const u8, limits: Limits) model.Error!Plan { const split = try scan.sections(markdown); std.debug.assert(split.metadata_start <= split.metadata_end); std.debug.assert(split.metadata_end <= split.body_start); std.debug.assert(split.body_start <= markdown.len); var iterator = scan.Iterator.init(markdown[split.metadata_start..split.metadata_end]); var pair_count: usize = 0; var finalized_bytes: usize = 0; var current: ?Current = null; var projection: Projection = .{}; while (iterator.next()) |field| switch (field) { .pair => |pair| { finalized_bytes = try finalize(finalized_bytes, current); projection.finish(current); pair_count = try added(pair_count, 1); if (pair_count > limits.max_pairs) return error.PairCapacityExceeded; current = Current.init(pair.key, pair.value); }, .continuation => |value| if (current) |*active| { try active.continueWith(value); const admitted = try added(finalized_bytes, active.joined_bytes); if (admitted > limits.max_continuation_bytes) { return error.ContinuationByteCapacityExceeded; } }, }; finalized_bytes = try finalize(finalized_bytes, current); projection.finish(current); std.debug.assert(pair_count <= limits.max_pairs); std.debug.assert(finalized_bytes <= limits.max_continuation_bytes); const result = Plan{ .input_bytes = markdown.len, .metadata_start = split.metadata_start, .metadata_end = split.metadata_end, .body_start = split.body_start, .pairs = pair_count, .continuation_bytes = finalized_bytes, .projection = projection.value, }; std.debug.assert(result.input_bytes == markdown.len); std.debug.assert(result.pairs == pair_count); std.debug.assert(result.continuation_bytes == finalized_bytes); return result; } pub fn exactLimits(self: Plan) Limits { const limits = Limits{ .max_pairs = self.pairs, .max_continuation_bytes = self.continuation_bytes, }; std.debug.assert(limits.max_pairs == self.pairs); std.debug.assert(limits.max_continuation_bytes == self.continuation_bytes); return limits; }};Source: lib/zen/src/root.zig:96
zig
/// Exact frontmatter demand and common-field projection measured without allocation.pub const FrontmatterPlan = frontmatter.Plan;Also reachable as
Audit
| Definitions | 3 |
|---|---|
| Public names | 6 |
| Members | 7 |
| Version | 26.7.0 |
| Revision | daab053ee433 |