[][src]Enum jsl::errors::JslError

pub enum JslError {
    InvalidForm,
    AmbiguousProperty {
        property: String,
    },
    NoSuchDefinition {
        id: Option<Url>,
        definition: String,
    },
    RelativeRefFromAnonymousSchema,
    NonRoot,
    Unsealed,
    NoSuchSchema,
    MaxDepthExceeded,
}

An enum of possible errors that can emerge from this crate.

Variants

InvalidForm

A schema-like object did not take on a valid form.

Only certain combinations of keywords make for valid JSL schemas. When a schema uses an invalid combination of keywords, it is said to not take on one of the valid forms. Converting a SerdeSchema with an invalid combination of keywords into a Schema will result in this error.

AmbiguousProperty

A schema-like object specified a keyword in an ambiguous manner.

JSL prohibits schemas from specifying the same property twice in the same schema. This error arises when a SerdeSchema's properties, optionalProperties, or discriminator.propertyName share a property in common, and one attempts to convert this into a Schema.

Fields of AmbiguousProperty

property: String
NoSuchDefinition

A schema refers to a definition which does not exist.

Schemas may refer to one another using the ref keyword, which may refer to a definition of another schema. If a schema refers to another schema's definition, but that schema is already in a Registry and lacks such a definition, then the reference cannot be resolved, and this error is thrown.

Fields of NoSuchDefinition

id: Option<Url>definition: String
RelativeRefFromAnonymousSchema

A schema attempts to refer to something relative to its ID, but it has no ID.

JSL resolves inter-schema references using the usual rules for URIs, where the id of a schema is used as the base URI for all refs within that schema. But if a schema lacks an id, then references must either be only a fragment, or be an absolute URI. Otherwise, there's no meaningful way to resolve the reference.

An example of one such unresolvable reference would be:

{
    "ref": "/foo"
}

There's no way to resolve /foo without having a base URI, but the schema doesn't have a base URI to work from.

NonRoot

A non-root schema was given to a function which expected a root schema.

Unsealed

A sealed registry was given to a function which expected a sealed schema.

NoSuchSchema

An ID was given, but no schema with that ID exists.

MaxDepthExceeded

The maximum depth during evaluating was exceeded.

This likely means that your configured max_depth is too small, or that there is a infinite cyclical definition in your schemas.

Trait Implementations

impl PartialEq<JslError> for JslError[src]

impl Debug for JslError[src]

impl Display for JslError[src]

impl Fail for JslError[src]

fn context<D>(self, context: D) -> Context<D> where
    D: Display + Send + Sync + 'static, 
[src]

Provides context for this failure. Read more

fn compat(self) -> Compat<Self>[src]

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more

Auto Trait Implementations

impl Send for JslError

impl Sync for JslError

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsFail for T where
    T: Fail
[src]

impl<E> Fail for E where
    E: 'static + Error + Send + Sync
[src]

fn name(&self) -> Option<&str>[src]

Returns the "name" of the error. Read more

fn cause(&self) -> Option<&(dyn Fail + 'static)>[src]

Returns a reference to the underlying cause of this failure, if it is an error that wraps other errors. Read more

fn backtrace(&self) -> Option<&Backtrace>[src]

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more

fn context<D>(self, context: D) -> Context<D> where
    D: Display + Send + Sync + 'static, 
[src]

Provides context for this failure. Read more

fn compat(self) -> Compat<Self>[src]

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more