Skip to main content

Module surfaces

Module surfaces 

Source
Expand description

Per-surface trait abstractions for the plugin registry.

This module is filled during Phase 4 of the §1.1 consolidation pass. It introduces the SurfaceKind enum and four family traits (NamedUniqueSurface, VersionedSurface, KeyedUniqueSurface, AppendSurface) that collapse the 25 surfaces in crate::registry to a handful of generic patterns.

§Phase 4 status

Phase 4 is complete: the 25 surfaces dispatch through the family-ops traits in this module. crate::registrar::PluginRegistrar enqueues Box<dyn DynPendingRegistration> payloads; PluginRegistry::apply_pending calls preflight then apply per payload; PluginRegistry::remove_plugin walks the per-family PluginRecord fields and dispatches to *Ops::remove / AppendOps::remove_plugin. The legacy PendingRegistration enum and its three 25-arm matches are gone.

§Family overview

FamilyStorage shapeExample surfaces
Named-uniqueDashMap<QName, Arc<Entry<K, Sig, P>>>Scalar, Aggregate, Window, …
VersionedDashMap<QName, Vec<Arc<Entry<…>>>>Procedure (arity overload)
Keyed-uniqueDashMap<K, Arc<dyn Provider>>IndexKind, StorageBackend, …
AppendArcSwap<Vec<Arc<dyn Provider>>>Hook, OptimizerRule, …

Append- and keyed-unique-family providers carry their key inside the trait (e.g. crate::traits::collation::CollationProvider::name); the KeyedUniqueSurface::key_of hook lets the registry derive a key from the provider when no explicit key is passed at registration time.

Structs§

AggregateSurface
Marker for the Aggregate surface. See NamedUniqueSurface.
AlgorithmSurface
Marker for the Algorithm surface. See NamedUniqueSurface.
AppendEntry
Owner-tagged append entry stored in append-family slots.
AuthSurface
Marker for the Auth surface. See AppendSurface.
AuthzSurface
Marker for the Authz surface. See AppendSurface.
BackgroundJobSurface
Marker for the BackgroundJob surface. See AppendSurface.
CatalogSurface
Marker for the Catalog surface. See KeyedUniqueSurface.
CdcSurface
Marker for the Cdc surface. See KeyedUniqueSurface.
CollationSurface
Marker for the Collation surface. See KeyedUniqueSurface.
ConnectorSurface
Marker for the Connector surface. See AppendSurface.
CrdtSurface
Marker for the Crdt surface. See KeyedUniqueSurface.
HookSurface
Marker for the Hook surface. See AppendSurface.
IndexKindSurface
Marker for the IndexKind surface. See KeyedUniqueSurface.
LabelStorageSurface
Marker for the LabelStorage surface. See KeyedUniqueSurface.
LocyAggregateSurface
Marker for the LocyAggregate surface. See NamedUniqueSurface.
LocyPredicateSurface
Marker for the LocyPredicate surface. See NamedUniqueSurface.
LogicalTypeSurface
Marker for the LogicalType surface. See KeyedUniqueSurface.
OperatorSurface
Marker for the Operator surface. See NamedUniqueSurface.
OptimizerRuleSurface
Marker for the OptimizerRule surface. See AppendSurface.
PregelSurface
Marker for the Pregel surface. See NamedUniqueSurface.
ProcedureSurface
Marker for the Procedure surface. See VersionedSurface.
ReplacementScanSurface
Marker for the ReplacementScan surface. See AppendSurface.
ScalarSurface
Marker for the Scalar surface. See NamedUniqueSurface.
StorageBackendSurface
Marker for the StorageBackend surface. See KeyedUniqueSurface.
TriggerSurface
Marker for the Trigger surface. See AppendSurface.
WindowSurface
Marker for the Window surface. See NamedUniqueSurface.

Enums§

Discriminator
Discriminator that distinguishes overloads sharing one QName.
SurfaceKind
Enumeration of the 25 plugin surfaces.

Traits§

AppendSurface
Append family: ArcSwap<Vec<Arc<dyn Provider>>>.
KeyedUniqueSurface
Keyed-unique family: DashMap<K, Arc<dyn Provider>>.
NamedUniqueSurface
Named-unique family: DashMap<QName, Arc<Entry<K, Sig, P>>>.
VersionedSurface
Versioned family: DashMap<QName, Vec<Arc<Entry<K, Sig, P>>>>.