Trait Describe

Source
pub trait Describe<C>{
    const TYPE_ID: RustTypeId;

    // Required method
    fn type_data() -> TypeData<C, RustTypeId>;

    // Provided method
    fn add_all_dependencies(aggregator: &mut TypeAggregator<C>) { ... }
}
Expand description

The Describe trait allows a type to describe how to interpret and validate a corresponding SBOR payload.

Each unique interpretation/validation of a type should have its own distinct type in the schema. Uniqueness of a type in the schema is defined by its RustTypeId.

Required Associated Constants§

Source

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.

Conceptually, each type should have a unique id based on:

  • Its SBOR type, structure and child types
  • Any validation that should be applied so that the codec can decode a payload successfully
  • How it should be named or its contents be displayed
  • Any additional data associated with the type which may be added in future (eg i18n or further validation)

For example:

  • An Array<u32> and Array<u64> are different types because they have different structures
  • Two types named “Content” may be in different namepaces, and wrap different kinds of content, so be different types
  • The tuple (T1, T2) is a different type for each T1 and T2 because they have different structures
  • Types which are intended to be “transparent” to SBOR such as pointers/smart pointers/etc are equivalent to their wrapper type, so should inherit the TYPE_ID of the wrapped type.

Most basic types without additional validation have an associated “Well Known” type, which is intended to save room in the schema. Any non-well known types are “Novel” and should be generated for each type.

If needing to generate a novel type id, this can be generated via helper methods on RustTypeId:

impl Describe<C: CustomTypeSchema, T1: Describe<C>> for MyType<T1> {
    const TYPE_ID: RustTypeId = RustTypeId::complex(stringify!(MyType), &[T1::TYPE_ID]);
}

Required Methods§

Source

fn type_data() -> TypeData<C, RustTypeId>

Returns the local schema for the given type.

If the TYPE_ID is well_known, then this type data must match the corresponding well known type data.

Provided Methods§

Source

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.

For direct/simple type dependencies, simply call aggregator.add_child_type_and_descendents::<D>() for each dependency.

For more complicated type dependencies, where new types are being created (EG where a dependent type is being customised/mutated via annotations on the parent type - such as a TypeName override), then the algorithm should be:

  • Step 1: For each (possibly customised) type dependency needed directly by this type:

    • Create a new mutated mutated_type_id for the underlying type plus its mutation
    • Use mutated_type_id in the relevant place/s in get_local_type_data
    • In add_all_dependencies add a line aggregator.add_child_type(mutated_type_id, mutated_local_type_data)
  • Step 2: For each (base/unmutated) type dependency D:

    • In add_all_dependencies add a line aggregator.add_schema_descendents::<D>()

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<C> Describe<C> for bool

Source§

impl<C> Describe<C> for i8

Source§

impl<C> Describe<C> for i16

Source§

impl<C> Describe<C> for i32

Source§

impl<C> Describe<C> for i64

Source§

impl<C> Describe<C> for i128

Source§

impl<C> Describe<C> for isize

Source§

impl<C> Describe<C> for str

Source§

impl<C> Describe<C> for u8

Source§

impl<C> Describe<C> for u16

Source§

impl<C> Describe<C> for u32

Source§

impl<C> Describe<C> for u64

Source§

impl<C> Describe<C> for u128

Source§

impl<C> Describe<C> for ()

Source§

impl<C> Describe<C> for usize

Source§

impl<C, T0> Describe<C> for (T0,)

Source§

impl<C, T0, T1> Describe<C> for (T0, T1)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>,

Source§

impl<C, T0, T1, T2> Describe<C> for (T0, T1, T2)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>,

Source§

impl<C, T0, T1, T2, T3> Describe<C> for (T0, T1, T2, T3)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4> Describe<C> for (T0, T1, T2, T3, T4)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5> Describe<C> for (T0, T1, T2, T3, T4, T5)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6> Describe<C> for (T0, T1, T2, T3, T4, T5, T6)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>, T15: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>, T15: Describe<C>, T16: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>, T15: Describe<C>, T16: Describe<C>, T17: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>, T15: Describe<C>, T16: Describe<C>, T17: Describe<C>, T18: Describe<C>,

Source§

impl<C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Describe<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)
where C: CustomTypeKind<RustTypeId>, T0: Describe<C>, T1: Describe<C>, T2: Describe<C>, T3: Describe<C>, T4: Describe<C>, T5: Describe<C>, T6: Describe<C>, T7: Describe<C>, T8: Describe<C>, T9: Describe<C>, T10: Describe<C>, T11: Describe<C>, T12: Describe<C>, T13: Describe<C>, T14: Describe<C>, T15: Describe<C>, T16: Describe<C>, T17: Describe<C>, T18: Describe<C>, T19: Describe<C>,

Source§

impl<C, T> Describe<C> for &T

Source§

impl<C, T> Describe<C> for [T]

Source§

impl<C, T, const N: usize> Describe<C> for [T; N]

Implementors§

Source§

impl Describe<ScryptoCustomTypeKind> for ParseBlsPublicKeyError

Source§

impl Describe<ScryptoCustomTypeKind> for ParseBlsSignatureError

Source§

impl Describe<ScryptoCustomTypeKind> for ParseEd25519PublicKeyError

Source§

impl Describe<ScryptoCustomTypeKind> for ParseEd25519SignatureError

Source§

impl Describe<ScryptoCustomTypeKind> for ParseSecp256k1PublicKeyError

Source§

impl Describe<ScryptoCustomTypeKind> for ParseSecp256k1SignatureError

Source§

impl Describe<ScryptoCustomTypeKind> for PublicKey

Source§

impl Describe<ScryptoCustomTypeKind> for PublicKeyHash

Source§

impl Describe<ScryptoCustomTypeKind> for AllowedIds

Source§

impl Describe<ScryptoCustomTypeKind> for LowerBound

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestBucketBatch

Source§

const TYPE_ID: RustTypeId = Vec<ManifestBucket>::TYPE_ID

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestComponentAddress

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestGlobalAddress

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestPackageAddress

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestProofBatch

Source§

const TYPE_ID: RustTypeId = Vec<ManifestProof>::TYPE_ID

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestResourceAddress

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestResourceConstraint

Source§

impl Describe<ScryptoCustomTypeKind> for ResourceConstraintError

Source§

impl Describe<ScryptoCustomTypeKind> for ResourceConstraintsError

Source§

impl Describe<ScryptoCustomTypeKind> for UpperBound

Source§

impl Describe<ScryptoCustomTypeKind> for OwnValidation

Source§

impl Describe<ScryptoCustomTypeKind> for ReferenceValidation

Source§

impl Describe<ScryptoCustomTypeKind> for ScryptoCustomTypeKind

Source§

impl Describe<ScryptoCustomTypeKind> for ScryptoCustomTypeKindLabel

Source§

impl Describe<ScryptoCustomTypeKind> for ScryptoCustomTypeValidation

Source§

impl Describe<ScryptoCustomTypeKind> for NonFungibleLocalId

Source§

impl Describe<ScryptoCustomTypeKind> for GenericSubstitution

Source§

impl Describe<ScryptoCustomTypeKind> for GlobalCaller

Source§

impl Describe<ScryptoCustomTypeKind> for RoyaltyAmount

Source§

impl Describe<ScryptoCustomTypeKind> for Ed25519PublicKey

Source§

impl Describe<ScryptoCustomTypeKind> for Ed25519PublicKeyHash

Source§

impl Describe<ScryptoCustomTypeKind> for Secp256k1PublicKey

Source§

impl Describe<ScryptoCustomTypeKind> for Secp256k1PublicKeyHash

Source§

impl Describe<ScryptoCustomTypeKind> for GeneralResourceConstraint

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestAddressReservation

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestBucket

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestDecimal

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestPreciseDecimal

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestProof

Source§

impl Describe<ScryptoCustomTypeKind> for ManifestResourceConstraints

Source§

impl Describe<ScryptoCustomTypeKind> for Own

Source§

impl Describe<ScryptoCustomTypeKind> for Reference

Source§

impl Describe<ScryptoCustomTypeKind> for Decimal

Source§

impl Describe<ScryptoCustomTypeKind> for PreciseDecimal

Source§

impl Describe<ScryptoCustomTypeKind> for Instant

Source§

impl Describe<ScryptoCustomTypeKind> for UtcDateTime

Source§

impl Describe<ScryptoCustomTypeKind> for BlueprintId

Source§

impl Describe<ScryptoCustomTypeKind> for BlueprintTypeIdentifier

Source§

impl Describe<ScryptoCustomTypeKind> for ComponentAddress

Source§

impl Describe<ScryptoCustomTypeKind> for GlobalAddress

Source§

impl Describe<ScryptoCustomTypeKind> for GlobalAddressReservation

Source§

impl Describe<ScryptoCustomTypeKind> for InternalAddress

Source§

impl Describe<ScryptoCustomTypeKind> for NonFungibleGlobalId

Source§

impl Describe<ScryptoCustomTypeKind> for PackageAddress

Source§

impl Describe<ScryptoCustomTypeKind> for ResourceAddress

Source§

impl Describe<NoCustomTypeKind> for PublicKey

Source§

impl Describe<NoCustomTypeKind> for PublicKeyHash

Source§

impl Describe<NoCustomTypeKind> for Ed25519PublicKey

Source§

impl Describe<NoCustomTypeKind> for Ed25519PublicKeyHash

Source§

impl Describe<NoCustomTypeKind> for Secp256k1PublicKey

Source§

impl Describe<NoCustomTypeKind> for Secp256k1PublicKeyHash

Source§

impl Describe<NoCustomTypeKind> for Instant

Source§

impl Describe<NoCustomTypeKind> for UtcDateTime

Source§

impl<'a, C, B> Describe<C> for Cow<'a, B>
where C: CustomTypeKind<RustTypeId>, B: 'a + ToOwned + Describe<C> + ?Sized,

Source§

const TYPE_ID: RustTypeId = B::TYPE_ID

Source§

impl<C> Describe<C> for ChildNames

Source§

impl<C> Describe<C> for DecodeError

Source§

impl<C> Describe<C> for EncodeError

Source§

impl<C> Describe<C> for LocalTypeId

Source§

impl<C> Describe<C> for NoCustomTypeKind

Source§

impl<C> Describe<C> for NoCustomTypeKindLabel

Source§

impl<C> Describe<C> for NoCustomTypeValidation

Source§

impl<C> Describe<C> for RustTypeId

Source§

impl<C> Describe<C> for SchemaValidationError

Source§

impl<C> Describe<C> for LengthValidation

Source§

impl<C> Describe<C> for NovelTypeMetadata

Source§

impl<C> Describe<C> for String

Source§

impl<C> Describe<C> for TypeMetadata

Source§

impl<C> Describe<C> for WellKnownTypeId

Source§

impl<C, K, V> Describe<C> for HashMap<K, V>
where C: CustomTypeKind<RustTypeId>, K: Describe<C>, V: Describe<C>,

Source§

const TYPE_ID: RustTypeId = BTreeMap<K, V>::TYPE_ID

Source§

impl<C, K, V> Describe<C> for IndexMap<K, V>
where C: CustomTypeKind<RustTypeId>, K: Describe<C>, V: Describe<C>,

Source§

const TYPE_ID: RustTypeId = BTreeMap<K, V>::TYPE_ID

Source§

impl<C, K, V> Describe<C> for BTreeMap<K, V>
where C: CustomTypeKind<RustTypeId>, K: Describe<C>, V: Describe<C>,

Source§

impl<C, T> Describe<C> for Option<T>

Source§

impl<C, T> Describe<C> for HashSet<T>

Source§

const TYPE_ID: RustTypeId = BTreeSet<T>::TYPE_ID

Source§

impl<C, T> Describe<C> for IndexSet<T>

Source§

const TYPE_ID: RustTypeId = BTreeSet<T>::TYPE_ID

Source§

impl<C, T> Describe<C> for Arc<T>

Source§

const TYPE_ID: RustTypeId = T::TYPE_ID

Source§

impl<C, T> Describe<C> for BTreeSet<T>

Source§

impl<C, T> Describe<C> for Box<T>

Source§

const TYPE_ID: RustTypeId = T::TYPE_ID

Source§

impl<C, T> Describe<C> for Rc<T>

Source§

const TYPE_ID: RustTypeId = T::TYPE_ID

Source§

impl<C, T> Describe<C> for RefCell<T>

Source§

const TYPE_ID: RustTypeId = T::TYPE_ID

Source§

impl<C, T> Describe<C> for Vec<T>

Source§

const TYPE_ID: RustTypeId = <[T]>::TYPE_ID

Source§

impl<C, T, E> Describe<C> for Result<T, E>
where C: CustomTypeKind<RustTypeId>, T: Describe<C>, E: Describe<C>,

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for AlwaysVisibleGlobalNodesVersion

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for ParseHashError

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for ScryptoCustomValueKind

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for NonFungibleIdType

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for RoundingMode

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for BatchPartitionStateUpdate

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for DatabaseUpdate

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for NodeStateUpdates

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for PartitionStateUpdates

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for TimeComparisonOperator

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for DateTimeError

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for EntityType

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for SubstateKey

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Bls12381G1PublicKey

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Bls12381G2Signature

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Ed25519Signature

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Hash

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Secp256k1Signature

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Secp256k1UncompressedPublicKey

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for NetworkDefinition

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for StateUpdates

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Epoch

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for NodeId

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for PartitionNumber

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for PartitionOffset

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for Round

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for SchemaHash

Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for ScopedTypeId

Source§

impl<E, C> Describe<C> for TypeValidation<E>

Source§

impl<Ext, C> Describe<C> for RawValue<'_, Ext>

Source§

impl<S, C> Describe<C> for SchemaVersions<S>

Source§

impl<S, C> Describe<C> for SchemaV1<S>

Source§

impl<S, C> Describe<C> for SingleTypeSchema<S>

Source§

impl<S, C> Describe<C> for TypeCollectionSchema<S>

Source§

impl<S, C> Describe<C> for VersionedSchema<S>

Source§

impl<T, C> Describe<C> for TypeKindLabel<T>

Source§

impl<T, C> Describe<C> for NumericValidation<T>

Source§

impl<T, C: CustomTypeKind<RustTypeId>> Describe<C> for FullyScopedTypeId<T>
where T: Describe<C> + AsRef<NodeId>,

Source§

impl<T, L, C> Describe<C> for TypeKind<T, L>

Source§

impl<X, Y, C> Describe<C> for Value<X, Y>

Source§

impl<X, Y, C> Describe<C> for EnumVariantValue<X, Y>