pub trait Categorize<X>
where X: CustomValueKind,
{ // Required method fn value_kind() -> ValueKind<X>; }
Expand description

The Categorize trait marks a rust type as having a fixed value kind for SBOR encoding/decoding.

Most rust types will have a fixed value kind in the SBOR model, and so can implement Categorize, but some (such as the SBOR Value) do not.

Implementing Categorize is required for being able to directly Encode / Decode any collection containing the rust type - because the value kind is lifted/deduplicated in the encoded payload.

If a type cannot implement Categorize, as a work-around, you can put it into a collection by (eg) wrapping it in a tuple of size 1.

Required Methods§

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, X, T> Categorize<X> for &T
where X: CustomValueKind, T: Categorize<X> + ?Sized,

source§

impl<X> Categorize<X> for bool
where X: CustomValueKind,

source§

impl<X> Categorize<X> for i8
where X: CustomValueKind,

source§

impl<X> Categorize<X> for i16
where X: CustomValueKind,

source§

impl<X> Categorize<X> for i32
where X: CustomValueKind,

source§

impl<X> Categorize<X> for i64
where X: CustomValueKind,

source§

impl<X> Categorize<X> for i128
where X: CustomValueKind,

source§

impl<X> Categorize<X> for isize
where X: CustomValueKind,

source§

impl<X> Categorize<X> for str
where X: CustomValueKind,

source§

impl<X> Categorize<X> for u8
where X: CustomValueKind,

source§

impl<X> Categorize<X> for u16
where X: CustomValueKind,

source§

impl<X> Categorize<X> for u32
where X: CustomValueKind,

source§

impl<X> Categorize<X> for u64
where X: CustomValueKind,

source§

impl<X> Categorize<X> for u128
where X: CustomValueKind,

source§

impl<X> Categorize<X> for ()
where X: CustomValueKind,

source§

impl<X> Categorize<X> for usize
where X: CustomValueKind,

source§

impl<X, A> Categorize<X> for (A,)
where X: CustomValueKind,

source§

impl<X, A, B> Categorize<X> for (A, B)
where X: CustomValueKind,

source§

impl<X, A, B, C> Categorize<X> for (A, B, C)
where X: CustomValueKind,

source§

impl<X, A, B, C, D> Categorize<X> for (A, B, C, D)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E> Categorize<X> for (A, B, C, D, E)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F> Categorize<X> for (A, B, C, D, E, F)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G> Categorize<X> for (A, B, C, D, E, F, G)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H> Categorize<X> for (A, B, C, D, E, F, G, H)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I> Categorize<X> for (A, B, C, D, E, F, G, H, I)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J> Categorize<X> for (A, B, C, D, E, F, G, H, I, J)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)
where X: CustomValueKind,

source§

impl<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> Categorize<X> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for [T]
where X: CustomValueKind,

source§

impl<X, T, const N: usize> Categorize<X> for [T; N]
where X: CustomValueKind,

Implementors§

source§

impl Categorize<ManifestCustomValueKind> for ManifestAddress

source§

impl Categorize<ManifestCustomValueKind> for ManifestExpression

source§

impl Categorize<ManifestCustomValueKind> for ManifestNonFungibleLocalId

source§

impl Categorize<ManifestCustomValueKind> for OwnValidation

source§

impl Categorize<ManifestCustomValueKind> for ReferenceValidation

source§

impl Categorize<ManifestCustomValueKind> for ScryptoCustomTypeKind

source§

impl Categorize<ManifestCustomValueKind> for ScryptoCustomTypeValidation

source§

impl Categorize<ManifestCustomValueKind> for NonFungibleLocalId

source§

impl Categorize<ManifestCustomValueKind> for RoyaltyAmount

source§

impl Categorize<ManifestCustomValueKind> for GenericSubstitution

source§

impl Categorize<ManifestCustomValueKind> for ManifestArgs

source§

impl Categorize<ManifestCustomValueKind> for ManifestAddressReservation

source§

impl Categorize<ManifestCustomValueKind> for ManifestBlobRef

source§

impl Categorize<ManifestCustomValueKind> for ManifestBucket

source§

impl Categorize<ManifestCustomValueKind> for ManifestDecimal

source§

impl Categorize<ManifestCustomValueKind> for ManifestPreciseDecimal

source§

impl Categorize<ManifestCustomValueKind> for ManifestProof

source§

impl Categorize<ManifestCustomValueKind> for Reference

source§

impl Categorize<ManifestCustomValueKind> for Decimal

source§

impl Categorize<ManifestCustomValueKind> for PreciseDecimal

source§

impl Categorize<ManifestCustomValueKind> for ComponentAddress

source§

impl Categorize<ManifestCustomValueKind> for GlobalAddress

source§

impl Categorize<ManifestCustomValueKind> for InternalAddress

source§

impl Categorize<ManifestCustomValueKind> for PackageAddress

source§

impl Categorize<ManifestCustomValueKind> for ResourceAddress

source§

impl Categorize<ManifestCustomValueKind> for BlueprintTypeIdentifier

source§

impl Categorize<ScryptoCustomValueKind> for ParseBlsPublicKeyError

source§

impl Categorize<ScryptoCustomValueKind> for ParseBlsSignatureError

source§

impl Categorize<ScryptoCustomValueKind> for OwnValidation

source§

impl Categorize<ScryptoCustomValueKind> for ReferenceValidation

source§

impl Categorize<ScryptoCustomValueKind> for ScryptoCustomTypeKind

source§

impl Categorize<ScryptoCustomValueKind> for ScryptoCustomTypeValidation

source§

impl Categorize<ScryptoCustomValueKind> for NonFungibleLocalId

source§

impl Categorize<ScryptoCustomValueKind> for RoyaltyAmount

source§

impl Categorize<ScryptoCustomValueKind> for GenericSubstitution

source§

impl Categorize<ScryptoCustomValueKind> for Own

source§

impl Categorize<ScryptoCustomValueKind> for Reference

source§

impl Categorize<ScryptoCustomValueKind> for Decimal

source§

impl Categorize<ScryptoCustomValueKind> for PreciseDecimal

source§

impl Categorize<ScryptoCustomValueKind> for ComponentAddress

source§

impl Categorize<ScryptoCustomValueKind> for GlobalAddress

source§

impl Categorize<ScryptoCustomValueKind> for InternalAddress

source§

impl Categorize<ScryptoCustomValueKind> for PackageAddress

source§

impl Categorize<ScryptoCustomValueKind> for ResourceAddress

source§

impl Categorize<ScryptoCustomValueKind> for GlobalAddressReservation

source§

impl Categorize<ScryptoCustomValueKind> for BlueprintTypeIdentifier

source§

impl<'a, X, B> Categorize<X> for Cow<'a, B>
where X: CustomValueKind, B: 'a + ToOwned + Categorize<X> + ?Sized,

source§

impl<C, L, X> Categorize<X> for TypeKind<C, L>

source§

impl<E, X> Categorize<X> for TypeValidation<E>

source§

impl<S, X> Categorize<X> for VersionedSchema<S>

source§

impl<S, X> Categorize<X> for SchemaV1<S>

source§

impl<T, X> Categorize<X> for NumericValidation<T>
where X: CustomValueKind,

source§

impl<T: Into<NodeId>, X: CustomValueKind> Categorize<X> for FullyScopedTypeId<T>

source§

impl<X> Categorize<X> for NoCustomTypeKind
where X: CustomValueKind,

source§

impl<X> Categorize<X> for NoCustomTypeValidation
where X: CustomValueKind,

source§

impl<X> Categorize<X> for SchemaValidationError
where X: CustomValueKind,

source§

impl<X> Categorize<X> for ChildNames
where X: CustomValueKind,

source§

impl<X> Categorize<X> for DecodeError
where X: CustomValueKind,

source§

impl<X> Categorize<X> for EncodeError
where X: CustomValueKind,

source§

impl<X> Categorize<X> for LocalTypeId
where X: CustomValueKind,

source§

impl<X> Categorize<X> for RustTypeId
where X: CustomValueKind,

source§

impl<X> Categorize<X> for LengthValidation
where X: CustomValueKind,

source§

impl<X> Categorize<X> for NovelTypeMetadata
where X: CustomValueKind,

source§

impl<X> Categorize<X> for String
where X: CustomValueKind,

source§

impl<X> Categorize<X> for TypeMetadata
where X: CustomValueKind,

source§

impl<X> Categorize<X> for WellKnownTypeId
where X: CustomValueKind,

source§

impl<X, K, V> Categorize<X> for BTreeMap<K, V>
where X: CustomValueKind,

source§

impl<X, K, V> Categorize<X> for HashMap<K, V>
where X: CustomValueKind,

source§

impl<X, K, V> Categorize<X> for IndexMap<K, V>
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for Option<T>
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for BTreeSet<T>
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for Box<T>
where X: CustomValueKind, T: Categorize<X>,

source§

impl<X, T> Categorize<X> for Rc<T>
where X: CustomValueKind, T: Categorize<X>,

source§

impl<X, T> Categorize<X> for RefCell<T>
where X: CustomValueKind, T: Categorize<X>,

source§

impl<X, T> Categorize<X> for Vec<T>
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for HashSet<T>
where X: CustomValueKind,

source§

impl<X, T> Categorize<X> for IndexSet<T>
where X: CustomValueKind,

source§

impl<X, T, E> Categorize<X> for Result<T, E>
where X: CustomValueKind,

source§

impl<X, Y> Categorize<X> for EnumVariantValue<X, Y>
where X: CustomValueKind, Y: CustomValue<X>,

source§

impl<X, const DISCRIMINATOR: u8, T> Categorize<X> for FixedEnumVariant<DISCRIMINATOR, T>
where X: CustomValueKind, T: SborTuple<X>,

source§

impl<X: CustomValueKind> Categorize<X> for ParseHashError

source§

impl<X: CustomValueKind> Categorize<X> for PublicKey

source§

impl<X: CustomValueKind> Categorize<X> for PublicKeyHash

source§

impl<X: CustomValueKind> Categorize<X> for ScryptoCustomValueKind

source§

impl<X: CustomValueKind> Categorize<X> for NonFungibleIdType

source§

impl<X: CustomValueKind> Categorize<X> for RoundingMode

source§

impl<X: CustomValueKind> Categorize<X> for TimeComparisonOperator

source§

impl<X: CustomValueKind> Categorize<X> for DateTimeError

source§

impl<X: CustomValueKind> Categorize<X> for EntityType

source§

impl<X: CustomValueKind> Categorize<X> for SubstateKey

source§

impl<X: CustomValueKind> Categorize<X> for Bls12381G1PublicKey

source§

impl<X: CustomValueKind> Categorize<X> for Bls12381G2Signature

source§

impl<X: CustomValueKind> Categorize<X> for Ed25519PublicKey

source§

impl<X: CustomValueKind> Categorize<X> for Ed25519PublicKeyHash

source§

impl<X: CustomValueKind> Categorize<X> for Ed25519Signature

source§

impl<X: CustomValueKind> Categorize<X> for Hash

source§

impl<X: CustomValueKind> Categorize<X> for Secp256k1PublicKey

source§

impl<X: CustomValueKind> Categorize<X> for Secp256k1PublicKeyHash

source§

impl<X: CustomValueKind> Categorize<X> for Secp256k1Signature

source§

impl<X: CustomValueKind> Categorize<X> for NetworkDefinition

source§

impl<X: CustomValueKind> Categorize<X> for Instant

source§

impl<X: CustomValueKind> Categorize<X> for UtcDateTime

source§

impl<X: CustomValueKind> Categorize<X> for Epoch

source§

impl<X: CustomValueKind> Categorize<X> for Round

source§

impl<X: CustomValueKind> Categorize<X> for NodeId

source§

impl<X: CustomValueKind> Categorize<X> for PartitionNumber

source§

impl<X: CustomValueKind> Categorize<X> for PartitionOffset

source§

impl<X: CustomValueKind> Categorize<X> for SchemaHash

source§

impl<X: CustomValueKind> Categorize<X> for ScopedTypeId