pub enum AnswerSheetDiagnostic {
Incompatible {
message: String,
},
Tag {
line: usize,
message: String,
},
SuspectedTagInAnswer {
path: String,
line: usize,
},
UnreadableDocument {
detail: String,
},
}Expand description
One problem found while parsing an answer sheet.
Diagnostics identify locations by 1-based line number and fields by stable ID or occurrence path; they never echo full answer values, since answer sheets may contain sensitive content. Compatibility diagnostics deliberately point at re-rendering: version 1 rejects incompatible sheets instead of migrating them.
Variants§
Incompatible
The document is incompatible with the parsing definition: a missing
or malformed #! preamble line, an unsupported answer-format
version, or a questionnaire-ID or fingerprint mismatch. The message
points at rendering a fresh sheet; version 1 rejects instead of
migrating.
Tag
A question or group tag line could not be accepted: its terminal
<id:...> tag is unknown to the schema, duplicated, or outside the
scope its definition allows.
Fields
SuspectedTagInAnswer
Warning: accepted answer text contains <id: — a mid-line tag
mention, a mangled tag, or a half-deleted one. The submission is
still accepted; a tag only structures the sheet when it ends its
line.
Fields
UnreadableDocument
The answer-sheet document could not be read at all (unreadable file, terminal stdin, or an I/O failure), so no content was parsed.
Trait Implementations§
Source§impl Clone for AnswerSheetDiagnostic
impl Clone for AnswerSheetDiagnostic
Source§fn clone(&self) -> AnswerSheetDiagnostic
fn clone(&self) -> AnswerSheetDiagnostic
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 AnswerSheetDiagnostic
impl Debug for AnswerSheetDiagnostic
Source§impl Display for AnswerSheetDiagnostic
impl Display for AnswerSheetDiagnostic
impl Eq for AnswerSheetDiagnostic
Source§impl Error for AnswerSheetDiagnostic
impl Error for AnswerSheetDiagnostic
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for AnswerSheetDiagnostic
impl PartialEq for AnswerSheetDiagnostic
impl StructuralPartialEq for AnswerSheetDiagnostic
Auto Trait Implementations§
impl Freeze for AnswerSheetDiagnostic
impl RefUnwindSafe for AnswerSheetDiagnostic
impl Send for AnswerSheetDiagnostic
impl Sync for AnswerSheetDiagnostic
impl Unpin for AnswerSheetDiagnostic
impl UnsafeUnpin for AnswerSheetDiagnostic
impl UnwindSafe for AnswerSheetDiagnostic
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<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 more