pub enum OverflowContext {
Mirror(u32),
Depth(u32),
Iterations(u32),
Grid(u32),
Radius(u32),
Points(u32),
Edges(u32),
Blur(u32),
}Expand description
Which construction hit the segment cap, for the surfaced message.
An enum rather than a String because one of the two producers is per
frame: with a String, an audio-driven mirror_order sitting over the cap
builds a fresh format!("mirror x{order}") on every single frame for as long
as it stayed there — a heap allocation on the hot path (Plan 0031 Phase 4).
The formatting now happens only in Display, i.e. only
when something actually prints it.
Variants§
Mirror(u32)
An N-fold geometry mirror replicated past the cap — per frame, from the
mirror_order param (Plan 0018 Phase 4).
Depth(u32)
An L-system depth expanded past the cap — once, at preset load.
Iterations(u32)
An escape-time iterations budget asked for past the tier’s
field_iterations —
per frame, since the budget is bindable. Carries what was asked; the
CapOverflow carries the cap it was clamped to.
Not a truncation of geometry but a clamp of a structural parameter, and the one case where the tier changes a preset’s picture rather than its density (ADR-0045) — which is exactly why it must not be silent.
Grid(u32)
A cellular [cellular] grid asked for past the tier’s
cellular_grid — once, at
preset load, since the grid is structural. Carries what was asked.
A clamp of content, like Iterations: a pattern is
a fixed number of cells, so a smaller grid draws every pattern larger.
Radius(u32)
A larger_than_life radius asked for past the tier’s
cellular_radius — per
frame, since the radius is bindable. Carries what was asked.
Points(u32)
A [plexus] points asked for past the tier’s
plexus_points — at preset
load, since the count is structural. Carries what was asked. A clamp of
content: fewer points is a sparser network.
Edges(u32)
A plexus graph that linked more pairs than the tier’s
plexus_edges — per frame,
since link_distance is bindable. Carries how many linked; the surplus
is dropped in index order.
Blur(u32)
An aperture asked for past the tier’s
max_coc_px — per frame, since
aperture is bindable. Carries the aperture, in whole pixels: the blur
of the far field, which the drawn blur stops short of.
Not the widest blur the lens draws. In front of the focal plane the circle of confusion grows without bound as depth shrinks, so a close camera saturates the cap on every tier with any aperture at all; that saturation is the lens’s ceiling, not an overflow, and is never announced (ADR-0257).
Trait Implementations§
Source§impl Clone for OverflowContext
impl Clone for OverflowContext
Source§fn clone(&self) -> OverflowContext
fn clone(&self) -> OverflowContext
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OverflowContext
impl Debug for OverflowContext
Source§impl Display for OverflowContext
impl Display for OverflowContext
Source§impl PartialEq for OverflowContext
impl PartialEq for OverflowContext
Source§fn eq(&self, other: &OverflowContext) -> bool
fn eq(&self, other: &OverflowContext) -> bool
self and other values to be equal, and is used by ==.impl Copy for OverflowContext
impl Eq for OverflowContext
impl StructuralPartialEq for OverflowContext
Auto Trait Implementations§
impl Freeze for OverflowContext
impl RefUnwindSafe for OverflowContext
impl Send for OverflowContext
impl Sync for OverflowContext
impl Unpin for OverflowContext
impl UnsafeUnpin for OverflowContext
impl UnwindSafe for OverflowContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.