Skip to main content

A2lError

Enum A2lError 

Source
pub enum A2lError {
Show 13 variants UnterminatedString { line: usize, }, UnterminatedComment { line: usize, }, InvalidNumber { text: String, line: usize, }, InvalidAddress { value: f64, line: usize, }, UnexpectedEof { context: &'static str, }, UnexpectedToken { expected: &'static str, got: String, line: usize, }, InvalidDatatype { text: String, line: usize, }, InvalidCharType { text: String, line: usize, }, InvalidConversionType { text: String, line: usize, }, UnterminatedBlock { block: String, line: usize, }, BlockMismatch { opened: String, closed: String, line: usize, }, MissingProject, DepthLimitExceeded { line: usize, },
}
Expand description

The single crate-level error for lexing and parsing.

Variants§

§

UnterminatedString

A quoted string runs to end of input without a closing quote.

Fields

§line: usize

Line the string started on (1-based).

§

UnterminatedComment

A /* */ comment runs to end of input without */.

Fields

§line: usize

Line the comment started on (1-based).

§

InvalidNumber

A numeric literal is not a valid number (includes hex literals with bad digits and malformed floats).

Fields

§text: String

The offending text.

§line: usize

Line the literal starts on (1-based).

§

InvalidAddress

A number that must be a 32-bit ECU address is negative or exceeds u32::MAX.

Fields

§value: f64

The offending value.

§line: usize

Line the literal starts on (1-based).

§

UnexpectedEof

Input ended where a token was required.

Fields

§context: &'static str

What the parser was looking for.

§

UnexpectedToken

A token of a different kind appeared where one was required.

Fields

§expected: &'static str

What the parser required (human-readable).

§got: String

What was found.

§line: usize

Line of the offending token (1-based).

§

InvalidDatatype

A DATATYPE keyword outside the ASAP2 data-type set.

Fields

§text: String

The offending keyword.

§line: usize

Line (1-based).

§

InvalidCharType

A CHARACTERISTIC type keyword outside the ASAP2 set (VALUE, CURVE, MAP, VAL_BLK, ASCII).

Fields

§text: String

The offending keyword.

§line: usize

Line (1-based).

§

InvalidConversionType

A COMPU_METHOD conversion type outside the supported set (RAT_FUNC, LINEAR, TABLE, IDENTITY/IDENTICAL).

Fields

§text: String

The offending keyword.

§line: usize

Line (1-based).

§

UnterminatedBlock

A /begin NAME block ran to end of input without its /end NAME.

Fields

§block: String

The block keyword.

§line: usize

Line the /begin appeared on (1-based).

§

BlockMismatch

A /end NAME closed a different block than the innermost open one.

Fields

§opened: String

The innermost open block keyword.

§closed: String

The /end keyword.

§line: usize

Line of the /end (1-based).

§

MissingProject

No /begin PROJECT block was found at the top level.

§

DepthLimitExceeded

/begin blocks nested deeper than the parser’s limit (MAX_DEPTH) — a guard against pathological input, never triggered by conforming files.

Fields

§line: usize

Line of the offending /begin (1-based).

Implementations§

Source§

impl A2lError

Source

pub fn line(&self) -> Option<usize>

The 1-based line the error was detected on, when applicable.

Trait Implementations§

Source§

impl Clone for A2lError

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for A2lError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for A2lError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for A2lError

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for A2lError

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for A2lError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.