pub trait DelegateVirtualStaticExtension<Provider, Discriminant = ()>: VirtualStaticExtension<Discriminant>where
Provider: VirtualStaticExtensionSchema<Discriminant>,
Discriminant: DiscriminantTag,
Self: Sized,{ }Expand description
Constraint for delegating a virtual extension to an external
VirtualStaticExtensionSchema.
This is the static counterpart to DelegateVirtualDynExtension,
where the schema defines a fully determined, compile-time structure.
§Roles
-
Container (
Self)- stores the extension representation
-
Schema (
Provider)- defines the element type and representation
-
Caller
- selects the extension via the
Discriminant
- selects the extension via the
§Representation
The delegated schema is static:
Manyhas array-like semantics- size and capacity are fixed at compile time
§Default Discriminant
Discriminant = (): delegates a single default extension, meaning one static extension is assumed.
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.
Implementors§
impl<Provider, Discriminant, T> DelegateVirtualStaticExtension<Provider, Discriminant> for Twhere
T: VirtualStaticExtension<Discriminant> + Sized,
Discriminant: DiscriminantTag,
Provider: VirtualStaticExtensionSchema<Discriminant>,
Blanket implementation enabling all types to delegate static extension schema resolution.