Trait DelegateVirtualStaticExtension

Source
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

§Representation

The delegated schema is static:

  • Many has 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§

Source§

impl<Provider, Discriminant, T> DelegateVirtualStaticExtension<Provider, Discriminant> for T
where T: VirtualStaticExtension<Discriminant> + Sized, Discriminant: DiscriminantTag, Provider: VirtualStaticExtensionSchema<Discriminant>,

Blanket implementation enabling all types to delegate static extension schema resolution.