pub struct VersionedSchema<S>where
S: CustomSchema,{ /* private fields */ }
Expand description
If you wish to get access to match on the versions, use .as_ref()
or .as_mut()
.
Implementations§
Source§impl<S> VersionedSchema<S>where
S: CustomSchema,
impl<S> VersionedSchema<S>where
S: CustomSchema,
pub fn new(inner: SchemaVersions<S>) -> VersionedSchema<S>
Source§impl<S> VersionedSchema<S>where
S: CustomSchema,
impl<S> VersionedSchema<S>where
S: CustomSchema,
Source§impl<S> VersionedSchema<S>where
S: CustomSchema,
impl<S> VersionedSchema<S>where
S: CustomSchema,
pub fn empty() -> VersionedSchema<S>
Trait Implementations§
Source§impl<S> AsMut<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
impl<S> AsMut<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
Source§fn as_mut(&mut self) -> &mut SchemaVersions<S>
fn as_mut(&mut self) -> &mut SchemaVersions<S>
Converts this type into a mutable reference of the (usually inferred) input type.
Source§impl<S> AsRef<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
impl<S> AsRef<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
Source§fn as_ref(&self) -> &SchemaVersions<S>
fn as_ref(&self) -> &SchemaVersions<S>
Converts this type into a shared reference of the (usually inferred) input type.
Source§impl<S, X> Categorize<X> for VersionedSchema<S>where
S: CustomSchema,
X: CustomValueKind,
impl<S, X> Categorize<X> for VersionedSchema<S>where
S: CustomSchema,
X: CustomValueKind,
fn value_kind() -> ValueKind<X>
Source§impl<S> Clone for VersionedSchema<S>where
S: Clone + CustomSchema,
impl<S> Clone for VersionedSchema<S>where
S: Clone + CustomSchema,
Source§fn clone(&self) -> VersionedSchema<S>
fn clone(&self) -> VersionedSchema<S>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<S> Debug for VersionedSchema<S>where
S: Debug + CustomSchema,
impl<S> Debug for VersionedSchema<S>where
S: Debug + CustomSchema,
Source§impl<S, D, X> Decode<X, D> for VersionedSchema<S>where
S: CustomSchema,
D: Decoder<X>,
X: CustomValueKind,
<S as CustomSchema>::CustomLocalTypeKind: Decode<X, D>,
<S as CustomSchema>::CustomTypeValidation: Decode<X, D>,
impl<S, D, X> Decode<X, D> for VersionedSchema<S>where
S: CustomSchema,
D: Decoder<X>,
X: CustomValueKind,
<S as CustomSchema>::CustomLocalTypeKind: Decode<X, D>,
<S as CustomSchema>::CustomTypeValidation: Decode<X, D>,
Source§fn decode_body_with_value_kind(
decoder: &mut D,
value_kind: ValueKind<X>,
) -> Result<VersionedSchema<S>, DecodeError>
fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<X>, ) -> Result<VersionedSchema<S>, DecodeError>
Decodes the type from the decoder, which should match a preloaded value kind. Read more
Source§impl<S> Default for VersionedSchema<S>where
S: CustomSchema,
impl<S> Default for VersionedSchema<S>where
S: CustomSchema,
Source§fn default() -> VersionedSchema<S>
fn default() -> VersionedSchema<S>
Returns the “default value” for a type. Read more
Source§impl<S, C> Describe<C> for VersionedSchema<S>where
S: CustomSchema,
C: CustomTypeKind<RustTypeId>,
<S as CustomSchema>::CustomLocalTypeKind: Describe<C>,
<S as CustomSchema>::CustomTypeValidation: Describe<C>,
impl<S, C> Describe<C> for VersionedSchema<S>where
S: CustomSchema,
C: CustomTypeKind<RustTypeId>,
<S as CustomSchema>::CustomLocalTypeKind: Describe<C>,
<S as CustomSchema>::CustomTypeValidation: Describe<C>,
Source§const TYPE_ID: RustTypeId
const TYPE_ID: RustTypeId
The
TYPE_ID
should give a unique identifier for its SBOR schema type.
An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read moreSource§fn type_data() -> TypeData<C, RustTypeId>
fn type_data() -> TypeData<C, RustTypeId>
Returns the local schema for the given type. Read more
Source§fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
For each type referenced in
get_local_type_data
, we need to ensure that the type and all of its own references
get added to the aggregator. Read moreSource§impl<S, E, X> Encode<X, E> for VersionedSchema<S>where
S: CustomSchema,
E: Encoder<X>,
X: CustomValueKind,
<S as CustomSchema>::CustomLocalTypeKind: Encode<X, E>,
<S as CustomSchema>::CustomTypeValidation: Encode<X, E>,
impl<S, E, X> Encode<X, E> for VersionedSchema<S>where
S: CustomSchema,
E: Encoder<X>,
X: CustomValueKind,
<S as CustomSchema>::CustomLocalTypeKind: Encode<X, E>,
<S as CustomSchema>::CustomTypeValidation: Encode<X, E>,
Source§fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR value’s kind to the encoder
Source§fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR body of the type to the encoder. Read more
Source§impl<S> From<SchemaV1<S>> for VersionedSchema<S>where
S: CustomSchema,
impl<S> From<SchemaV1<S>> for VersionedSchema<S>where
S: CustomSchema,
Source§fn from(value: SchemaV1<S>) -> VersionedSchema<S>
fn from(value: SchemaV1<S>) -> VersionedSchema<S>
Converts to this type from the input type.
Source§impl<S> From<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
impl<S> From<SchemaVersions<S>> for VersionedSchema<S>where
S: CustomSchema,
Source§fn from(value: SchemaVersions<S>) -> VersionedSchema<S>
fn from(value: SchemaVersions<S>) -> VersionedSchema<S>
Converts to this type from the input type.
Source§impl<S> From<VersionedSchema<S>> for SchemaVersions<S>where
S: CustomSchema,
impl<S> From<VersionedSchema<S>> for SchemaVersions<S>where
S: CustomSchema,
Source§fn from(value: VersionedSchema<S>) -> SchemaVersions<S>
fn from(value: VersionedSchema<S>) -> SchemaVersions<S>
Converts to this type from the input type.
Source§impl<S> PartialEq for VersionedSchema<S>where
S: PartialEq + CustomSchema,
impl<S> PartialEq for VersionedSchema<S>where
S: PartialEq + CustomSchema,
Source§impl<S, X> SborEnum<X> for VersionedSchema<S>
impl<S, X> SborEnum<X> for VersionedSchema<S>
fn get_discriminator(&self) -> u8
fn get_length(&self) -> usize
Source§impl<S, X> SborTuple<X> for VersionedSchema<S>
impl<S, X> SborTuple<X> for VersionedSchema<S>
fn get_length(&self) -> usize
Source§impl<S> UniqueVersioned for VersionedSchema<S>where
S: CustomSchema,
impl<S> UniqueVersioned for VersionedSchema<S>where
S: CustomSchema,
Source§fn as_unique_version(&self) -> &<VersionedSchema<S> as Versioned>::LatestVersion
fn as_unique_version(&self) -> &<VersionedSchema<S> as Versioned>::LatestVersion
Returns an immutable reference to (currently) the only possible version of the inner content.
Source§fn as_unique_version_mut(
&mut self,
) -> &mut <VersionedSchema<S> as Versioned>::LatestVersion
fn as_unique_version_mut( &mut self, ) -> &mut <VersionedSchema<S> as Versioned>::LatestVersion
Returns a mutable reference to (currently) the only possible version of the inner content. Read more
Source§fn into_unique_version(self) -> <VersionedSchema<S> as Versioned>::LatestVersion
fn into_unique_version(self) -> <VersionedSchema<S> as Versioned>::LatestVersion
Returns the (currently) only possible version of the inner content. Read more
Source§fn from_unique_version(
content: <VersionedSchema<S> as Versioned>::LatestVersion,
) -> VersionedSchema<S>
fn from_unique_version( content: <VersionedSchema<S> as Versioned>::LatestVersion, ) -> VersionedSchema<S>
Creates the versioned wrapper from the (currently) only possible version. Read more
Source§impl<S> Versioned for VersionedSchema<S>where
S: CustomSchema,
impl<S> Versioned for VersionedSchema<S>where
S: CustomSchema,
Source§fn from_latest_version(
latest: <VersionedSchema<S> as Versioned>::LatestVersion,
) -> VersionedSchema<S>
fn from_latest_version( latest: <VersionedSchema<S> as Versioned>::LatestVersion, ) -> VersionedSchema<S>
Constructs the versioned enum from the latest content
Source§type Versions = SchemaVersions<S>
type Versions = SchemaVersions<S>
The type for the enum of versions.
Source§type LatestVersion = SchemaV1<S>
type LatestVersion = SchemaV1<S>
The type for the latest content.
Source§fn is_fully_updated(&self) -> bool
fn is_fully_updated(&self) -> bool
Returns true if at the latest version.
Source§fn in_place_fully_update(&mut self) -> &mut VersionedSchema<S>
fn in_place_fully_update(&mut self) -> &mut VersionedSchema<S>
Updates to the latest version in place.
Source§fn fully_update_and_into_latest_version(
self,
) -> <VersionedSchema<S> as Versioned>::LatestVersion
fn fully_update_and_into_latest_version( self, ) -> <VersionedSchema<S> as Versioned>::LatestVersion
Updates itself to the latest version, then returns the latest content
Source§fn as_latest_version(
&self,
) -> Option<&<VersionedSchema<S> as Versioned>::LatestVersion>
fn as_latest_version( &self, ) -> Option<&<VersionedSchema<S> as Versioned>::LatestVersion>
If the versioned wrapper is at the latest version, it returns
an immutable reference to the latest content, otherwise it returns
None
. Read moreSource§fn as_latest_version_mut(
&mut self,
) -> Option<&mut <VersionedSchema<S> as Versioned>::LatestVersion>
fn as_latest_version_mut( &mut self, ) -> Option<&mut <VersionedSchema<S> as Versioned>::LatestVersion>
If the versioned wrapper is at the latest version, it returns
a mutable reference to the latest content, otherwise it returns
None
. Read moreSource§fn as_versions(&self) -> &<VersionedSchema<S> as Versioned>::Versions
fn as_versions(&self) -> &<VersionedSchema<S> as Versioned>::Versions
Gets a reference the inner versions enum, for e.g. matching on the enum. Read more
Source§fn as_versions_mut(
&mut self,
) -> &mut <VersionedSchema<S> as Versioned>::Versions
fn as_versions_mut( &mut self, ) -> &mut <VersionedSchema<S> as Versioned>::Versions
Gets a mutable reference the inner versions enum, for e.g. matching on the enum. Read more
Source§fn into_versions(self) -> <VersionedSchema<S> as Versioned>::Versions
fn into_versions(self) -> <VersionedSchema<S> as Versioned>::Versions
Removes the upgradable wrapper to get at the inner versions enum, for e.g. matching on the enum.
Source§fn from_versions(
version: <VersionedSchema<S> as Versioned>::Versions,
) -> VersionedSchema<S>
fn from_versions( version: <VersionedSchema<S> as Versioned>::Versions, ) -> VersionedSchema<S>
Creates a new Versioned wrapper from a given specific version.
Source§fn in_place_fully_update_and_as_latest_version_mut(
&mut self,
) -> &mut Self::LatestVersion
fn in_place_fully_update_and_as_latest_version_mut( &mut self, ) -> &mut Self::LatestVersion
Updates the latest version in place, and returns a
&mut
to the latest contentSource§fn fully_update(self) -> Self
fn fully_update(self) -> Self
Consumes self, updates to the latest version and returns itself.
impl<S> Eq for VersionedSchema<S>where
S: Eq + CustomSchema,
impl<S> StructuralPartialEq for VersionedSchema<S>where
S: CustomSchema,
Auto Trait Implementations§
impl<S> Freeze for VersionedSchema<S>
impl<S> RefUnwindSafe for VersionedSchema<S>where
<S as CustomSchema>::CustomLocalTypeKind: RefUnwindSafe,
<S as CustomSchema>::CustomTypeValidation: RefUnwindSafe,
impl<S> Send for VersionedSchema<S>where
<S as CustomSchema>::CustomLocalTypeKind: Send,
<S as CustomSchema>::CustomTypeValidation: Send,
impl<S> Sync for VersionedSchema<S>where
<S as CustomSchema>::CustomLocalTypeKind: Sync,
<S as CustomSchema>::CustomTypeValidation: Sync,
impl<S> Unpin for VersionedSchema<S>where
<S as CustomSchema>::CustomLocalTypeKind: Unpin,
<S as CustomSchema>::CustomTypeValidation: Unpin,
impl<S> UnwindSafe for VersionedSchema<S>where
<S as CustomSchema>::CustomLocalTypeKind: UnwindSafe,
<S as CustomSchema>::CustomTypeValidation: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
type Error = <U as ContextualTryFrom<T>>::Error
type Context = <U as ContextualTryFrom<T>>::Context
fn contextual_try_into( self, context: &<U as ContextualTryFrom<T>>::Context, ) -> Result<U, <U as ContextualTryFrom<T>>::Error>
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.