pub trait DelegateVirtualDynExtension<Provider, Discriminant = ()>: VirtualDynExtension<Discriminant>where
Provider: VirtualDynExtensionSchema<Discriminant>,
Discriminant: DiscriminantTag,
Self: Sized,{ }Expand description
Constraint for delegating a virtual extension to an external schema.
This trait ties a container to an externally provided
VirtualDynExtensionSchema, without requiring the container
to define the extension’s type or representation itself.
§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 dynamic:
Manyhas vector-like semantics- size and bounds are resolved at runtime (within limits)
§Default Discriminant
Discriminant = (): delegates a single default extension, meaning one dynamic 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> DelegateVirtualDynExtension<Provider, Discriminant> for Twhere
T: VirtualDynExtension<Discriminant> + Sized,
Discriminant: DiscriminantTag,
Provider: VirtualDynExtensionSchema<Discriminant>,
Blanket implementation enabling all types to delegate extension schema resolution.