pub enum SynxlErrorKind {
MissingPrologue,
UnsupportedVersion,
UnknownDirective,
NoFieldList,
MalformedFieldList,
DuplicateField,
MarkerChain,
NonDeterministicHint,
BlockWithType,
ZeroArity,
Unwritable,
LimitExceeded,
}Expand description
Hard-error conditions (§11.1). Every one of these aborts the parse; no partial result is produced.
Variants§
MissingPrologue
Missing or malformed !synxl <version> prologue (§4.1).
UnsupportedVersion
Prologue declares a version this implementation does not support, or a repeated prologue declares a different version (§1.3, §4.1). For format version 1 the two conditions coincide: “different” implies “not 1”.
UnknownDirective
A line at indent 0 beginning with ! that is neither a prologue nor a
field list — including SYNX directives such as !active (§4.1).
NoFieldList
Record line encountered while no field list is in effect (§4.2).
MalformedFieldList
Empty or unparsable !fields line (§5).
DuplicateField
Duplicate field name within one field list (§5.1).
MarkerChain
A marker run — chain (:a:b) or single (:custom) — in a field
declaration (§5.2).
NonDeterministicHint
random / random:int / random:float / random:bool hint (§8.3).
BlockWithType
block combined with (type) or type: (§5.3).
ZeroArity
A field list whose every field carries block, i.e. arity 0 (§5.3.4).
Unwritable
Writer only. A value has no SYNXL rendering: it must be promoted to a block (§14.3) but promoting it would leave the field list at arity 0 (§5.3.4). §14.3 requires rejecting such a value loudly — emitting a document that reads back differently, or one that no reader accepts, is not permitted. Cannot arise for a value obtained by parsing (§14.1).
LimitExceeded
A §13 limit other than MAX_SYNXL_RECORD_BYTES was exceeded.
Implementations§
Trait Implementations§
Source§impl Clone for SynxlErrorKind
impl Clone for SynxlErrorKind
Source§fn clone(&self) -> SynxlErrorKind
fn clone(&self) -> SynxlErrorKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more