Enum jtd::SchemaValidateError[][src]

pub enum SchemaValidateError {
    NoSuchDefinition(String),
    NonRootDefinitions,
    EmptyEnum,
    RepeatedProperty(String),
    NullableMapping,
    NonPropertiesMapping,
    RepeatedDiscriminator(String),
}

Errors that may arise from Schema::validate.

Variants

NoSuchDefinition(String)

Indicates the schema has a ref to a definition that doesn't exist.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::NoSuchDefinition("foo".into())),

    // a "ref" without definitions is always invalid
    Schema::Ref {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        ref_: "foo".into(),
    }.validate(),
)
NonRootDefinitions

Indicates the schema has non-empty definitions below the root level.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::NonRootDefinitions),

    // definitions can only be present at the root level
    Schema::Elements {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        elements: Box::new(Schema::Empty {
            definitions: vec![(
                "foo".to_owned(),
                Schema::Empty {
                    definitions: Default::default(),
                    metadata: Default::default(),
                }
            )].into_iter().collect(),
            metadata: Default::default(),
        }),
    }.validate(),
)
EmptyEnum

Indicates the schema has an enum with no values in it.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::EmptyEnum),

    // empty enums are illegal
    Schema::Enum {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        enum_: Default::default(),
    }.validate(),
)
RepeatedProperty(String)

Indicates the schema has the same property appear in properties and optional_properties.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::RepeatedProperty("foo".into())),

    // properties and optional_properties must not overlap
    Schema::Properties {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        properties: vec![(
            "foo".to_owned(),
            Schema::Empty {
                definitions: Default::default(),
                metadata: Default::default(),
            },
        )].into_iter().collect(),
        optional_properties: vec![(
            "foo".to_owned(),
            Schema::Empty {
                definitions: Default::default(),
                metadata: Default::default(),
            },
        )].into_iter().collect(),
        properties_is_present: true,
        additional_properties: false,
    }.validate(),
)
NullableMapping

Indicates the schema has a value in mapping with nullable set to true.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::NullableMapping),

    // mappings must not be nullable
    Schema::Discriminator {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        discriminator: "foo".into(),
        mapping: vec![(
            "bar".to_owned(),
            Schema::Properties {
                definitions: Default::default(),
                metadata: Default::default(),
                nullable: true,
                properties: Default::default(),
                optional_properties: Default::default(),
                properties_is_present: true,
                additional_properties: false,
            }
        )].into_iter().collect(),
    }.validate(),
);
NonPropertiesMapping

Indicates the schema has a value in mapping that isn't a Schema::Properties.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::NonPropertiesMapping),

    // mappings must be of the properties form
    Schema::Discriminator {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        discriminator: "foo".into(),
        mapping: vec![(
            "bar".to_owned(),
            Schema::Empty {
                definitions: Default::default(),
                metadata: Default::default(),
            }
        )].into_iter().collect(),
    }.validate(),
);
RepeatedDiscriminator(String)

Indicates the schema has a value in mapping whose properties or optional_properties contains discriminator.

use jtd::{Schema, SchemaValidateError};

assert_eq!(
    Err(SchemaValidateError::RepeatedDiscriminator("foo".into())),

    // mappings must not re-define the discriminator property
    Schema::Discriminator {
        definitions: Default::default(),
        metadata: Default::default(),
        nullable: Default::default(),
        discriminator: "foo".into(),
        mapping: vec![(
            "bar".to_owned(),
            Schema::Properties {
                definitions: Default::default(),
                metadata: Default::default(),
                nullable: Default::default(),
                properties: vec![(
                    "foo".into(),
                    Schema::Empty {
                        definitions: Default::default(),
                        metadata: Default::default(),
                    }
                )].into_iter().collect(),
                optional_properties: Default::default(),
                properties_is_present: true,
                additional_properties: false,
            }
        )].into_iter().collect(),
    }.validate(),
);

Trait Implementations

impl Clone for SchemaValidateError[src]

impl Debug for SchemaValidateError[src]

impl Display for SchemaValidateError[src]

impl Eq for SchemaValidateError[src]

impl Error for SchemaValidateError[src]

impl PartialEq<SchemaValidateError> for SchemaValidateError[src]

impl StructuralEq for SchemaValidateError[src]

impl StructuralPartialEq for SchemaValidateError[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.