tiny.arrange.Scratch
Defined in tiny.arrange.
API (15)
Actions
Public operations.
Fields and members
Public fields and members.
cache_epochchild_indiceschild_indices_usedindexed_cachelineslines_usedmetricsmetrics_usedresultsresults_usedsize_cache_enabledstatesstates_usedwork
Source
Source: lib/arrange/src/compute.zig:162
zig
pub const Scratch = struct { results: []LayoutResult, results_used: usize = 0, metrics: []flow.ChildMetrics, metrics_used: usize = 0, lines: []flow.Line, lines_used: usize = 0, states: []NodeState, states_used: usize = 0, child_indices: []ChildIndex, child_indices_used: usize = 0, indexed_cache: []IndexedCacheSlot = &.{}, cache_epoch: u32 = 0, work: Work = .{}, size_cache_enabled: bool = true, pub fn reset(self: *Scratch) void { self.results_used = 0; self.metrics_used = 0; self.lines_used = 0; self.resetSolve(); } fn resetSolve(self: *Scratch) void { self.states_used = 0; self.child_indices_used = 0; self.work = .{}; std.debug.assert(self.indexed_cache.len <= std.math.maxInt(u32)); const clear_start = std.math.maxInt(u32) - @as(u32, @intCast(self.indexed_cache.len)); if (self.cache_epoch >= clear_start and self.cache_epoch < std.math.maxInt(u32)) { const clear_index: usize = @intCast(self.cache_epoch - clear_start); self.indexed_cache[clear_index].epoch = 0; } self.cache_epoch +%= 1; if (self.cache_epoch == 0) self.cache_epoch = 1; } fn mark(self: *const Scratch) ScratchMark { return .{ .metrics = self.metrics_used, .lines = self.lines_used, }; } fn release(self: *Scratch, point: ScratchMark) void { self.metrics_used = point.metrics; self.lines_used = point.lines; } fn carveResults(self: *Scratch, count: usize) []LayoutResult { std.debug.assert(self.results_used + count <= self.results.len); const span = self.results[self.results_used..][0..count]; self.results_used += count; return span; } fn carveMetrics(self: *Scratch, count: usize) []flow.ChildMetrics { std.debug.assert(self.metrics_used + count <= self.metrics.len); const span = self.metrics[self.metrics_used..][0..count]; self.metrics_used += count; return span; } fn carveLines(self: *Scratch, count: usize) []flow.Line { std.debug.assert(self.lines_used + count <= self.lines.len); const span = self.lines[self.lines_used..][0..count]; self.lines_used += count; return span; }};Source: lib/arrange/src/root.zig:34
zig
pub const Scratch = compute.Scratch;Audit
| Definitions | 2 |
|---|---|
| Public names | 2 |
| Members | 14 |
| Version | 26.7.0 |
| Revision | daab053ee433 |