pub trait ParameterBackend: NeuralBackend {
type Parameter: 'static;
type MaterializedWeight;
type MaterializationContext: ?Sized;
type Materialization;
type ParameterError: Error + Send + Sync + 'static;
// Required methods
fn preflight_recipe(
recipe: &DerivedWeightRecipe,
source: &dyn CheckpointSource,
) -> Result<(), Self::ParameterError>;
fn materialize(
lease: CheckpointLease,
context: &Self::MaterializationContext,
) -> Result<Self::Materialization, Self::ParameterError>;
fn materialize_recipe(
recipe: &DerivedWeightRecipe,
source: &dyn CheckpointSource,
context: &Self::MaterializationContext,
) -> Result<Self::Materialization, Self::ParameterError>;
fn materialized_weight(
materialization: &Self::Materialization,
) -> &Self::MaterializedWeight;
fn finish_materialization(
materialization: Self::Materialization,
) -> Result<Self::MaterializedWeight, Self::ParameterError>;
fn share_materialized_weight(
weight: &Self::MaterializedWeight,
) -> Result<Self::MaterializedWeight, Self::ParameterError>;
fn validate_bind(
parameter: &Self::Parameter,
weight: &Self::MaterializedWeight,
) -> Result<(), Self::ParameterError>;
fn bind(parameter: &mut Self::Parameter, weight: Self::MaterializedWeight);
}Expand description
Materializes and binds checkpoint data to backend-native parameter slots.
Required Associated Types§
Sourcetype MaterializedWeight
type MaterializedWeight
Materialized backend-native checkpoint weight.
Sourcetype MaterializationContext: ?Sized
type MaterializationContext: ?Sized
Backend context used only while realizing checkpoint parameters.
Sourcetype Materialization
type Materialization
In-flight guard retaining encoded sources through exact realization completion.
Sourcetype ParameterError: Error + Send + Sync + 'static
type ParameterError: Error + Send + Sync + 'static
Backend-specific loading failure.
Required Methods§
Sourcefn preflight_recipe(
recipe: &DerivedWeightRecipe,
source: &dyn CheckpointSource,
) -> Result<(), Self::ParameterError>
fn preflight_recipe( recipe: &DerivedWeightRecipe, source: &dyn CheckpointSource, ) -> Result<(), Self::ParameterError>
Validates that one neutral recipe can be represented by this backend.
This is a metadata-only selection gate. Implementations must not acquire payload leases, allocate native tensors, or submit backend work.
Sourcefn materialize(
lease: CheckpointLease,
context: &Self::MaterializationContext,
) -> Result<Self::Materialization, Self::ParameterError>
fn materialize( lease: CheckpointLease, context: &Self::MaterializationContext, ) -> Result<Self::Materialization, Self::ParameterError>
Lowers one format-preserving encoded lease into a native weight.
Sourcefn materialize_recipe(
recipe: &DerivedWeightRecipe,
source: &dyn CheckpointSource,
context: &Self::MaterializationContext,
) -> Result<Self::Materialization, Self::ParameterError>
fn materialize_recipe( recipe: &DerivedWeightRecipe, source: &dyn CheckpointSource, context: &Self::MaterializationContext, ) -> Result<Self::Materialization, Self::ParameterError>
Lowers a validated neutral recipe directly into a native weight.
Sourcefn materialized_weight(
materialization: &Self::Materialization,
) -> &Self::MaterializedWeight
fn materialized_weight( materialization: &Self::Materialization, ) -> &Self::MaterializedWeight
Borrows the native weight retained by an in-flight materialization.
Sourcefn finish_materialization(
materialization: Self::Materialization,
) -> Result<Self::MaterializedWeight, Self::ParameterError>
fn finish_materialization( materialization: Self::Materialization, ) -> Result<Self::MaterializedWeight, Self::ParameterError>
Waits for this exact realization and releases its encoded source lease.
Creates another native handle to identical materialized storage without rereading or rematerializing checkpoint data.
Sourcefn validate_bind(
parameter: &Self::Parameter,
weight: &Self::MaterializedWeight,
) -> Result<(), Self::ParameterError>
fn validate_bind( parameter: &Self::Parameter, weight: &Self::MaterializedWeight, ) -> Result<(), Self::ParameterError>
Validates destination shape/storage compatibility without publication.
Sourcefn bind(parameter: &mut Self::Parameter, weight: Self::MaterializedWeight)
fn bind(parameter: &mut Self::Parameter, weight: Self::MaterializedWeight)
Binds one materialized weight to its destination parameter.
This operation is infallible so orchestration can validate an entire atomic unit before publishing any destination.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".