TraceContext.Entries.truncate: def of bend-trace-context@0.2.0.0 Import: import bend-trace-context@0.2.0.0/trace_context.bend as TraceContext Lines 2466-2476 of bend-trace-context@0.2.0.0/trace_context.bend: https://jend.leeeet.dev/read.txt?path=bend-trace-context@0.2.0.0/trace_context.bend&start_line=2466&end_line=2476 import Base # Remove entries one step at a time while they take more than `budget` # octets, and stop as soon as they fit. `fuel` bounds the steps. One per # entry suffices: once every entry is removed, the empty list takes 0 octets, # which fits any budget. def Entries.truncate(fuel: Nat, +budget: Nat, +entries: List<&2, StateEntry>) -> List<&2, StateEntry>: match fuel: case 0n: entries case 1n+more: Bool.pick(List<&2, StateEntry>, Nat.is_le(Entries.size(entries), budget), entries, Entries.truncate(more, budget, Entries.shrink(entries))) Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.pick https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_le https://jend.leeeet.dev/definition.txt?path=bend-trace-context@0.2.0.0/trace_context.bend&name=Entries.shrink https://jend.leeeet.dev/definition.txt?path=bend-trace-context@0.2.0.0/trace_context.bend&name=Entries.size https://jend.leeeet.dev/definition.txt?path=bend-trace-context@0.2.0.0/trace_context.bend&name=StateEntry