#[non_exhaustive]pub enum DiagnosticKind {
FormulaUnavailable,
FormulaCachedValueUnverified,
AmbiguousSheetMatch {
candidates: Vec<SheetRef>,
},
UnsupportedCellValue {
detail: String,
},
UnsupportedWorkbookFeature {
feature: String,
},
UnsupportedWorkbookMetadata {
category: String,
},
DefinedNameScopeUnknown,
DateTimeNotNormalized,
LimitTruncatedCells {
limit: String,
observed: u64,
},
AlignmentBoundExceeded {
limit: u64,
observed: u64,
},
DuplicateAlignmentKey {
old_count: usize,
new_count: usize,
},
}Expand description
Structured diagnostic kind.
code() returns a stable string identifier for serde / localisation;
it is never renamed within a major version.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
FormulaCachedValueUnverified
AmbiguousSheetMatch
UnsupportedCellValue
UnsupportedWorkbookFeature
UnsupportedWorkbookMetadata
DefinedNameScopeUnknown
DateTimeNotNormalized
LimitTruncatedCells
AlignmentBoundExceeded
RFC-035 §5.2: the alignment row-product bound (Limits::max_alignment_product)
was exceeded, so this sheet fell back to positional comparison. Never
paired with an error — alignment degrades, it does not fail.
DuplicateAlignmentKey
Two or more rows share the same alignment key. Replaces the previous
(incorrect) reuse of UnsupportedCellValue for this condition — no
cell value failed to normalise here.
Implementations§
Source§impl DiagnosticKind
impl DiagnosticKind
Sourcepub fn code(&self) -> &'static str
pub fn code(&self) -> &'static str
Stable code string for this diagnostic kind.
These strings are the stable programmatic surface for diagnostics.
Match on code() rather than on the #[non_exhaustive] enum variants:
new variants may be added in a minor release (which would break an
exhaustive match on the enum), but an existing code string is never
renamed within a major version. Codes also appear verbatim in serialised
JSON.
The complete set of codes in this major version:
| Code | Meaning |
|---|---|
formula_unavailable | A cell’s formula text could not be read |
formula_cached_value_unverified | A formula’s cached value could not be verified |
ambiguous_sheet_match | Sheet rename detection found more than one candidate |
unsupported_cell_value | A cell value could not be normalised to a CellValue |
unsupported_workbook_feature | A non-cell object/sheet type is present but not compared |
unsupported_workbook_metadata | A defined-name / visibility / metadata change was detected |
defined_name_scope_unknown | Defined-name scope is unavailable from the reader |
datetime_not_normalized | A date/time value could not be normalised to ISO form |
limit_truncated_cells | A configured cell limit truncated the comparison |
alignment_bound_exceeded | The alignment row-product bound was exceeded; fell back to positional |
duplicate_alignment_key | Two or more rows shared the same alignment key |
New codes added in later minor versions will extend this table; existing rows are stable.
Trait Implementations§
Source§impl Clone for DiagnosticKind
impl Clone for DiagnosticKind
Source§fn clone(&self) -> DiagnosticKind
fn clone(&self) -> DiagnosticKind
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 DiagnosticKind
impl Debug for DiagnosticKind
impl Eq for DiagnosticKind
Source§impl PartialEq for DiagnosticKind
impl PartialEq for DiagnosticKind
impl StructuralPartialEq for DiagnosticKind
Auto Trait Implementations§
impl Freeze for DiagnosticKind
impl RefUnwindSafe for DiagnosticKind
impl Send for DiagnosticKind
impl Sync for DiagnosticKind
impl Unpin for DiagnosticKind
impl UnsafeUnpin for DiagnosticKind
impl UnwindSafe for DiagnosticKind
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.