pub enum SymbolicTruncationReason {
ElementCount,
OutputBytes,
ItemDepth,
ItemRevisits,
ItemCycle,
}Expand description
Which bound stopped an extraction early.
SymbolicData had no diagnostics channel at all (#2938), so a drawing that
lost 60% of its curves was indistinguishable, in the response, from one that
legitimately had nothing more to emit.
The reason matters as much as the fact. #2938’s own lead case is a well-formed nested block import losing content to the PER-ITEM revisit budget while the whole-file totals sit far below the extraction bounds – so a diagnostic that only reported the extraction bounds would have reported nothing on the exact scenario the issue is about.
Variants§
ElementCount
[MAX_SYMBOLIC_ELEMENTS] reached.
OutputBytes
[MAX_SYMBOLIC_BYTES] reached.
ItemDepth
One representation item nested deeper than the walk follows.
ItemRevisits
One representation item exhausted its revisit budget: the item was a large acyclic fan-out, or a legitimate deeply-nested block import.
ItemCycle
The walk’s path guard (ItemWalk::enter_node) refused to re-enter a
node already on the current path – a genuine cycle in the
representation graph, not merely a large fan-out. Distinct from
Self::ItemRevisits, whose budget can also be exhausted by an
acyclic file (#2938’s lead case); this reason is a cycle and nothing
else (#3108).
Implementations§
Source§impl SymbolicTruncationReason
impl SymbolicTruncationReason
Sourcepub fn as_wire_str(self) -> &'static str
pub fn as_wire_str(self) -> &'static str
The wire spelling, identical to what Serialize emits.
The WASM boundary cannot hand a serde enum to JavaScript, so it needs a
plain string; having it here rather than a match in wasm-bindings keeps
one vocabulary for both surfaces. the_wire_spellings_match_serde pins
them together, because two hand-kept lists is how they drift.
Trait Implementations§
Source§impl Clone for SymbolicTruncationReason
impl Clone for SymbolicTruncationReason
Source§fn clone(&self) -> SymbolicTruncationReason
fn clone(&self) -> SymbolicTruncationReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SymbolicTruncationReason
Source§impl Debug for SymbolicTruncationReason
impl Debug for SymbolicTruncationReason
Source§impl<'de> Deserialize<'de> for SymbolicTruncationReason
impl<'de> Deserialize<'de> for SymbolicTruncationReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SymbolicTruncationReason
Source§impl PartialEq for SymbolicTruncationReason
impl PartialEq for SymbolicTruncationReason
Source§impl Serialize for SymbolicTruncationReason
impl Serialize for SymbolicTruncationReason
impl StructuralPartialEq for SymbolicTruncationReason
Auto Trait Implementations§
impl Freeze for SymbolicTruncationReason
impl RefUnwindSafe for SymbolicTruncationReason
impl Send for SymbolicTruncationReason
impl Sync for SymbolicTruncationReason
impl Unpin for SymbolicTruncationReason
impl UnsafeUnpin for SymbolicTruncationReason
impl UnwindSafe for SymbolicTruncationReason
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.