Skip to main content

VersionedSurface

Trait VersionedSurface 

Source
pub trait VersionedSurface: 'static {
    type Sig: Send + Sync + 'static;
    type Provider: ?Sized + Send + Sync + 'static;

    const KIND: SurfaceKind;

    // Required method
    fn discriminator(sig: &Self::Sig) -> Discriminator;
}
Expand description

Versioned family: DashMap<QName, Vec<Arc<Entry<K, Sig, P>>>>.

Multiple registrations may share one qname, distinguished by a Discriminator. Only member today: Procedure (arity overload).

Required Associated Constants§

Source

const KIND: SurfaceKind

Surface discriminant.

Required Associated Types§

Source

type Sig: Send + Sync + 'static

The registered signature.

Source

type Provider: ?Sized + Send + Sync + 'static

The trait-object provider.

Required Methods§

Source

fn discriminator(sig: &Self::Sig) -> Discriminator

Extract the per-overload discriminator from a signature so the registry can de-duplicate within one qname.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§