SchemaComparisonSettings

Struct SchemaComparisonSettings 

Source
pub struct SchemaComparisonSettings { /* private fields */ }

Implementations§

Source§

impl SchemaComparisonSettings

Source

pub const fn require_equality() -> SchemaComparisonSettings

A set of defaults intended to enforce effective equality of the schemas, but with clear error messages if they diverge

Source

pub const fn allow_extension() -> SchemaComparisonSettings

A set of defaults intended to capture a pretty tight definition of structural extension.

This captures that:

  • Payloads which are valid/decodable against the old schema are valid against the new schema
  • Programmatic SBOR JSON is unchanged (that is, type/field/variant names are also unchanged)

Notably:

  • Type roots can be added in the compared schema, but we check that the type roots provided completely cover both schemas
  • Types must be structurally identical on their intersection, except new enum variants can be added
  • Type metadata (e.g. names) must be identical on their intersection
  • Type validation must be equal or strictly weaker in the new schema
Source

pub fn with_completeness( self, builder: impl FnOnce(SchemaComparisonCompletenessSettings) -> SchemaComparisonCompletenessSettings, ) -> SchemaComparisonSettings

Source

pub const fn set_completeness( self, settings: SchemaComparisonCompletenessSettings, ) -> SchemaComparisonSettings

Source

pub fn with_structure( self, builder: impl FnOnce(SchemaComparisonStructureSettings) -> SchemaComparisonStructureSettings, ) -> SchemaComparisonSettings

Source

pub const fn set_structure( self, settings: SchemaComparisonStructureSettings, ) -> SchemaComparisonSettings

Source

pub fn with_metadata( self, builder: impl FnOnce(SchemaComparisonMetadataSettings) -> SchemaComparisonMetadataSettings, ) -> SchemaComparisonSettings

Source

pub const fn set_metadata( self, settings: SchemaComparisonMetadataSettings, ) -> SchemaComparisonSettings

Source

pub const fn allow_all_name_changes(self) -> SchemaComparisonSettings

An easy method for a common setting change

Source

pub fn with_validation( self, builder: impl FnOnce(SchemaComparisonValidationSettings) -> SchemaComparisonValidationSettings, ) -> SchemaComparisonSettings

Source

pub const fn set_validation( self, settings: SchemaComparisonValidationSettings, ) -> SchemaComparisonSettings

Trait Implementations§

Source§

impl Clone for SchemaComparisonSettings

Source§

fn clone(&self) -> SchemaComparisonSettings

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SchemaComparisonSettings

Source§

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

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

impl PartialEq for SchemaComparisonSettings

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SchemaComparisonSettings

Source§

impl Eq for SchemaComparisonSettings

Source§

impl StructuralPartialEq for SchemaComparisonSettings

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<U> As for U

Source§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. 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, U> ContextualTryInto<U> for T
where U: ContextualTryFrom<T>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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<X, Y> LabelledResolve<Y> for X
where Y: LabelledResolveFrom<X>,

Source§

fn labelled_resolve( self, resolver: &impl LabelResolver<<Y as LabelledResolvable>::ResolverOutput>, ) -> Y

Source§

impl<X, Y> Resolve<Y> for X
where Y: ResolveFrom<X>,

Source§

fn resolve(self) -> Y

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, 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.