pub struct VersionedSchema<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: CustomSchema> VersionedSchema<S>
impl<S: CustomSchema> VersionedSchema<S>
pub fn new(inner: SchemaVersions<S>) -> Self
Source§impl<S: CustomSchema> VersionedSchema<S>
impl<S: CustomSchema> VersionedSchema<S>
Source§impl<S: CustomSchema> VersionedSchema<S>
impl<S: CustomSchema> VersionedSchema<S>
Trait Implementations§
Source§impl<S: CustomSchema> AsMut<SchemaVersions<S>> for VersionedSchema<S>
impl<S: CustomSchema> AsMut<SchemaVersions<S>> for VersionedSchema<S>
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: CustomSchema> AsRef<SchemaVersions<S>> for VersionedSchema<S>
impl<S: CustomSchema> AsRef<SchemaVersions<S>> for VersionedSchema<S>
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: CustomSchema, X: CustomValueKind> Categorize<X> for VersionedSchema<S>
impl<S: CustomSchema, X: CustomValueKind> Categorize<X> for VersionedSchema<S>
fn value_kind() -> ValueKind<X>
Source§impl<S: Clone + CustomSchema> Clone for VersionedSchema<S>
impl<S: Clone + CustomSchema> Clone for VersionedSchema<S>
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 + CustomSchema> Debug for VersionedSchema<S>
impl<S: Debug + CustomSchema> Debug for VersionedSchema<S>
Source§impl<S: CustomSchema, D: Decoder<X>, X: CustomValueKind> Decode<X, D> for VersionedSchema<S>
impl<S: CustomSchema, D: Decoder<X>, X: CustomValueKind> Decode<X, D> for VersionedSchema<S>
Source§fn decode_body_with_value_kind(
decoder: &mut D,
value_kind: ValueKind<X>,
) -> Result<Self, DecodeError>
fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<X>, ) -> Result<Self, DecodeError>
Decodes the type from the decoder, which should match a preloaded value kind. Read more
Source§impl<S: CustomSchema> Default for VersionedSchema<S>
impl<S: CustomSchema> Default for VersionedSchema<S>
Source§impl<S: CustomSchema, C: CustomTypeKind<RustTypeId>> Describe<C> for VersionedSchema<S>
impl<S: CustomSchema, C: CustomTypeKind<RustTypeId>> Describe<C> for VersionedSchema<S>
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: CustomSchema, E: Encoder<X>, X: CustomValueKind> Encode<X, E> for VersionedSchema<S>
impl<S: CustomSchema, E: Encoder<X>, X: CustomValueKind> Encode<X, E> for VersionedSchema<S>
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: CustomSchema> From<SchemaV1<S>> for VersionedSchema<S>
impl<S: CustomSchema> From<SchemaV1<S>> for VersionedSchema<S>
Source§impl<S: CustomSchema> From<SchemaVersions<S>> for VersionedSchema<S>
impl<S: CustomSchema> From<SchemaVersions<S>> for VersionedSchema<S>
Source§fn from(value: SchemaVersions<S>) -> Self
fn from(value: SchemaVersions<S>) -> Self
Converts to this type from the input type.
Source§impl<S: CustomSchema> From<VersionedSchema<S>> for SchemaVersions<S>
impl<S: CustomSchema> From<VersionedSchema<S>> for SchemaVersions<S>
Source§fn from(value: VersionedSchema<S>) -> Self
fn from(value: VersionedSchema<S>) -> Self
Converts to this type from the input type.
Source§impl<S: PartialEq + CustomSchema> PartialEq for VersionedSchema<S>
impl<S: PartialEq + CustomSchema> PartialEq for VersionedSchema<S>
Source§impl<S: CustomSchema, X: CustomValueKind> SborEnum<X> for VersionedSchema<S>where
for<'b_> &'b_ SchemaVersions<S>: SborEnum<X>,
impl<S: CustomSchema, X: CustomValueKind> SborEnum<X> for VersionedSchema<S>where
for<'b_> &'b_ SchemaVersions<S>: SborEnum<X>,
fn get_discriminator(&self) -> u8
fn get_length(&self) -> usize
Source§impl<S: CustomSchema, X: CustomValueKind> SborTuple<X> for VersionedSchema<S>where
for<'b_> &'b_ SchemaVersions<S>: SborTuple<X>,
impl<S: CustomSchema, X: CustomValueKind> SborTuple<X> for VersionedSchema<S>where
for<'b_> &'b_ SchemaVersions<S>: SborTuple<X>,
fn get_length(&self) -> usize
Source§impl<S: CustomSchema> UniqueVersioned for VersionedSchema<S>
impl<S: CustomSchema> UniqueVersioned for VersionedSchema<S>
Source§fn as_unique_version(&self) -> &Self::LatestVersion
fn as_unique_version(&self) -> &Self::LatestVersion
Returns an immutable reference to (currently) the only possible version of the inner content.
Source§fn as_unique_version_mut(&mut self) -> &mut Self::LatestVersion
fn as_unique_version_mut(&mut self) -> &mut Self::LatestVersion
Returns a mutable reference to (currently) the only possible version of the inner content. Read more
Source§fn into_unique_version(self) -> Self::LatestVersion
fn into_unique_version(self) -> Self::LatestVersion
Returns the (currently) only possible version of the inner content. Read more
Source§fn from_unique_version(content: Self::LatestVersion) -> Self
fn from_unique_version(content: Self::LatestVersion) -> Self
Creates the versioned wrapper from the (currently) only possible version. Read more
Source§impl<S: CustomSchema> Versioned for VersionedSchema<S>
impl<S: CustomSchema> Versioned for VersionedSchema<S>
Source§fn from_latest_version(latest: Self::LatestVersion) -> Self
fn from_latest_version(latest: Self::LatestVersion) -> Self
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 Self
fn in_place_fully_update(&mut self) -> &mut Self
Updates to the latest version in place.
Source§fn fully_update_and_into_latest_version(self) -> Self::LatestVersion
fn fully_update_and_into_latest_version(self) -> Self::LatestVersion
Updates itself to the latest version, then returns the latest content
Source§fn as_latest_version(&self) -> Option<&Self::LatestVersion>
fn as_latest_version(&self) -> Option<&Self::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 Self::LatestVersion>
fn as_latest_version_mut(&mut self) -> Option<&mut Self::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) -> &Self::Versions
fn as_versions(&self) -> &Self::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 Self::Versions
fn as_versions_mut(&mut self) -> &mut Self::Versions
Gets a mutable reference the inner versions enum, for e.g. matching on the enum. Read more
Source§fn into_versions(self) -> Self::Versions
fn into_versions(self) -> Self::Versions
Removes the upgradable wrapper to get at the inner versions enum, for e.g. matching on the enum.
Source§fn from_versions(version: Self::Versions) -> Self
fn from_versions(version: Self::Versions) -> Self
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 + CustomSchema> Eq for VersionedSchema<S>
impl<S: CustomSchema> StructuralPartialEq for VersionedSchema<S>
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.