pub trait ParameterBackend: NeuralBackend {
type Parameter: 'static;
type MaterializedWeight;
type MaterializationContext: ?Sized;
type Materialization;
type ParameterError: Error + Send + Sync + 'static;
// Required methods
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,
) -> Result<(), Self::ParameterError>;
}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 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,
) -> Result<(), Self::ParameterError>
fn bind( parameter: &mut Self::Parameter, weight: Self::MaterializedWeight, ) -> Result<(), Self::ParameterError>
Binds one materialized weight to its destination parameter.
After successful Self::validate_bind on unchanged arguments this
operation must not fail, allowing orchestration to 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".