Skip to main content

ValidationError

Enum ValidationError 

Source
pub enum ValidationError {
Show 32 variants NoModuleName, DuplicateModuleName(String), InvalidModuleName(String, &'static str), DuplicateFunctionName { module: String, function: String, }, DuplicateParamName { module: String, function: String, param: String, }, ReservedKeyword(String), InvalidIdentifier(String, &'static str), ErrorDomainMissingName(String), DuplicateErrorName { module: String, name: String, }, DuplicateErrorCode { module: String, code: i32, }, InvalidErrorCode { module: String, name: String, }, NameCollisionWithErrorDomain { module: String, name: String, }, DuplicateStructName { module: String, name: String, }, DuplicateStructField { struct_name: String, field: String, }, EmptyStruct { module: String, name: String, }, DuplicateEnumName { module: String, name: String, }, EmptyEnum { module: String, name: String, }, DuplicateEnumVariant { enum_name: String, variant: String, }, DuplicateEnumVariantField { enum_name: String, variant: String, field: String, }, DuplicateEnumValue { enum_name: String, value: i32, }, UnknownTypeRef { name: String, }, InvalidMapKey { key_type: String, }, BorrowedTypeInInvalidPosition { ty: String, location: String, }, DuplicateCallbackName { module: String, name: String, }, ListenerCallbackNotFound { module: String, listener: String, callback: String, }, DuplicateListenerName { module: String, name: String, }, UnsupportedCallbackParamType { module: String, callback: String, param: String, ty: String, }, IteratorInInvalidPosition { location: String, }, UnsupportedElementType { location: String, ty: String, }, AsyncIteratorReturn { module: String, function: String, }, BuilderStructEmpty { module: String, name: String, }, UnsupportedSchemaVersion { version: String, supported: String, },
}
Expand description

Every way an Api can fail validation.

validate_api returns the first variant it encounters. Each variant carries the names needed to render an actionable diagnostic, and the #[error]/#[diagnostic] attributes supply the message and help text shown to the user.

Variants§

§

NoModuleName

A module is missing its required name field.

§

DuplicateModuleName(String)

Two modules share the same name.

§

InvalidModuleName(String, &'static str)

A module name is not a valid identifier; the second field explains why.

§

DuplicateFunctionName

Two functions in the same module share a name.

Fields

§module: String

Module that contains the colliding functions.

§function: String

Duplicated function name.

§

DuplicateParamName

Two parameters of one function share a name.

Fields

§module: String

Module that contains the function.

§function: String

Function that contains the colliding parameters.

§param: String

Duplicated parameter name.

§

ReservedKeyword(String)

A name matches a reserved keyword in one of the target languages.

§

InvalidIdentifier(String, &'static str)

An identifier is malformed; the second field explains why.

§

ErrorDomainMissingName(String)

An error domain in the named module is missing its name field.

§

DuplicateErrorName

Two error codes in the same module share a name.

Fields

§module: String

Module that contains the error domain.

§name: String

Duplicated error code name.

§

DuplicateErrorCode

Two error codes in the same module share a numeric value.

Fields

§module: String

Module that contains the error domain.

§code: i32

Conflicting numeric error code.

§

InvalidErrorCode

An error code uses the reserved value 0 (which means success).

Fields

§module: String

Module that contains the error domain.

§name: String

Error code name with the invalid value.

§

NameCollisionWithErrorDomain

A function name collides with an error domain name in the same module.

Fields

§module: String

Module where the collision occurs.

§name: String

Name shared by the function and the error domain.

§

DuplicateStructName

Two structs in the same module share a name.

Fields

§module: String

Module that contains the structs.

§name: String

Duplicated struct name.

§

DuplicateStructField

Two fields of one struct share a name.

Fields

§struct_name: String

Struct that contains the colliding fields.

§field: String

Duplicated field name.

§

EmptyStruct

A struct declares no fields.

Fields

§module: String

Module that contains the struct.

§name: String

Name of the empty struct.

§

DuplicateEnumName

Two enums in the same module share a name.

Fields

§module: String

Module that contains the enums.

§name: String

Duplicated enum name.

§

EmptyEnum

An enum declares no variants.

Fields

§module: String

Module that contains the enum.

§name: String

Name of the empty enum.

§

DuplicateEnumVariant

Two variants of one enum share a name.

Fields

§enum_name: String

Enum that contains the colliding variants.

§variant: String

Duplicated variant name.

§

DuplicateEnumVariantField

Two associated fields of one rich enum variant share a name.

Fields

§enum_name: String

Enum that contains the variant.

§variant: String

Variant that contains the colliding fields.

§field: String

Duplicated associated field name.

§

DuplicateEnumValue

Two variants of one enum share a numeric discriminant.

Fields

§enum_name: String

Enum that contains the variants.

§value: i32

Conflicting numeric discriminant.

§

UnknownTypeRef

A type reference names a struct or enum that doesn’t exist.

Fields

§name: String

Unresolved type name.

§

InvalidMapKey

A map uses a key type the C ABI can’t represent.

Fields

§key_type: String

Rejected key type, rendered as it appears in the IDL.

§

BorrowedTypeInInvalidPosition

A borrowed type appears somewhere other than a function parameter.

Fields

§ty: String

Borrowed type that was rejected.

§location: String

Position where the borrowed type appeared.

§

DuplicateCallbackName

Two callbacks in the same module share a name.

Fields

§module: String

Module that contains the callbacks.

§name: String

Duplicated callback name.

§

ListenerCallbackNotFound

A listener references a callback that isn’t defined in its module.

Fields

§module: String

Module that contains the listener.

§listener: String

Listener with the dangling reference.

§callback: String

Callback name that could not be resolved.

§

DuplicateListenerName

Two listeners in the same module share a name.

Fields

§module: String

Module that contains the listeners.

§name: String

Duplicated listener name.

§

UnsupportedCallbackParamType

A callback parameter uses a type that can’t cross the callback ABI.

Fields

§module: String

Module that contains the callback.

§callback: String

Callback that declares the parameter.

§param: String

Parameter with the unsupported type.

§ty: String

Offending type, rendered as it appears in the IDL.

§

IteratorInInvalidPosition

An iterator type appears somewhere other than a function return.

Fields

§location: String

Position where the iterator type appeared.

§

UnsupportedElementType

A list, map, or iterator has an element type the C ABI can’t flatten.

Fields

§location: String

Position where the unsupported element type appeared.

§ty: String

Offending element type, rendered as it appears in the IDL.

§

AsyncIteratorReturn

An async function tries to return an iterator, which has no async ABI.

Fields

§module: String

Module that contains the function.

§function: String

Async function with the iterator return.

§

BuilderStructEmpty

A struct marked builder: true declares no fields.

Fields

§module: String

Module that contains the struct.

§name: String

Name of the empty builder struct.

§

UnsupportedSchemaVersion

The document declares a schema version this build doesn’t support.

Fields

§version: String

Version requested by the document.

§supported: String

Comma-separated list of versions this build accepts.

Trait Implementations§

Source§

impl Debug for ValidationError

Source§

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

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

impl Diagnostic for ValidationError

Source§

fn help(&self) -> Option<Box<dyn Display + '_>>

Additional help text related to this Diagnostic. Do you have any advice for the poor soul who’s just run into this issue?
Source§

fn code<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

Unique diagnostic code that can be used to look up more information about this Diagnostic. Ideally also globally unique, and documented in the toplevel crate’s documentation for easy searching. Rust path format (foo::bar::baz) is recommended, but more classic codes like E0123 or enums will work just fine.
Source§

fn severity(&self) -> Option<Severity>

Diagnostic severity. This may be used by ReportHandlers to change the display format of this diagnostic. Read more
Source§

fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

URL to visit for a more detailed explanation/help about this Diagnostic.
Source§

fn source_code(&self) -> Option<&dyn SourceCode>

Source code to apply this Diagnostic’s Diagnostic::labels to.
Source§

fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>

Labels to apply to this Diagnostic’s Diagnostic::source_code
Source§

fn related<'a>( &'a self, ) -> Option<Box<dyn Iterator<Item = &'a dyn Diagnostic> + 'a>>

Additional related Diagnostics.
Source§

fn diagnostic_source(&self) -> Option<&dyn Diagnostic>

The cause of the error.
Source§

impl Display for ValidationError

Source§

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

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

impl Error for ValidationError

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

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.