Struct VocabularyParseError
pub struct VocabularyParseError {
vocabulary: &'static str,
input: String,
accepted: &'static [&'static str],
form: Option<&'static str>,
}Expand description
Error parsing a closed vocabulary from a string.
Carries the accepted spellings so the message can list them; the list comes from the same declaration that built the parser, so a message can never omit an accepted value or advertise a rejected one.
§Listing, shape, and both
Not every vocabulary a caller names by string is finite, and the ones that are not still owe the caller a message that corrects the common mistake. Three shapes, and every rejection in the crate is one of them:
| Constructor | Accepted set | Message |
|---|---|---|
new | closed | lists it |
new + with_tail | closed names plus an open tail | lists the names, then names the tail’s form |
of_form | too large to read | names the form only |
A rejection carrying neither a list nor a form is refused by
tests/closed_vocabulary.rs, which is what makes the third column a
promise rather than a habit. of_form is not an escape
from listing: it is for an identifier space with a stated form, where
enumerating would bury the correction — a currency code rejected for its
case wants to be told about case, not handed ISO 4217.
Fields§
§vocabulary: &'static str§input: String§accepted: &'static [&'static str]§form: Option<&'static str>Implementations§
§impl VocabularyParseError
impl VocabularyParseError
pub fn new(
vocabulary: &'static str,
input: &str,
accepted: &'static [&'static str],
) -> Self
pub fn new( vocabulary: &'static str, input: &str, accepted: &'static [&'static str], ) -> Self
Builds a parse error from the vocabulary’s label, the offending input, and the full accepted set.
pub fn with_tail(self, form: &'static str) -> Self
pub fn with_tail(self, form: &'static str) -> Self
Adds the open tail to a listing rejection: the vocabulary accepts its
listed names and a shape — a frequency, which takes its variant names
and any period code; a roll convention, which takes its names and any day
of the month. form describes the tail and renders after the list.
pub fn of_form(
vocabulary: &'static str,
input: &str,
form: &'static str,
) -> Self
pub fn of_form( vocabulary: &'static str, input: &str, form: &'static str, ) -> Self
Builds a parse error for a vocabulary too large to enumerate usefully, carrying the expected form instead of a list.
form SHALL state the shape well enough to correct the common mistake:
a currency code rejected for its case says that codes are upper-case.
pub fn accepted(&self) -> &'static [&'static str]
pub fn accepted(&self) -> &'static [&'static str]
Every spelling this vocabulary accepts, empty where the set is carried as a form instead.
pub fn form(&self) -> Option<&'static str>
pub fn form(&self) -> Option<&'static str>
The shape of what this vocabulary accepts beyond its listed spellings,
or None where the list is the whole of it.
pub fn vocabulary(&self) -> &'static str
pub fn vocabulary(&self) -> &'static str
The vocabulary’s label, as it appears in the message.
Trait Implementations§
§impl Clone for VocabularyParseError
impl Clone for VocabularyParseError
§fn clone(&self) -> VocabularyParseError
fn clone(&self) -> VocabularyParseError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for VocabularyParseError
impl Debug for VocabularyParseError
§impl Display for VocabularyParseError
impl Display for VocabularyParseError
impl Eq for VocabularyParseError
§impl Error for VocabularyParseError
impl Error for VocabularyParseError
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()
§impl From<VocabularyParseError> for FxIndexError
impl From<VocabularyParseError> for FxIndexError
§fn from(e: VocabularyParseError) -> Self
fn from(e: VocabularyParseError) -> Self
§impl PartialEq for VocabularyParseError
impl PartialEq for VocabularyParseError
§fn eq(&self, other: &VocabularyParseError) -> bool
fn eq(&self, other: &VocabularyParseError) -> bool
self and other values to be equal, and is used by ==.