Skip to main content

ParameterBackend

Trait ParameterBackend 

Source
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§

Source

type Parameter: 'static

One backend-native parameter slot.

Source

type MaterializedWeight

Materialized backend-native checkpoint weight.

Source

type MaterializationContext: ?Sized

Backend context used only while realizing checkpoint parameters.

Source

type Materialization

In-flight guard retaining encoded sources through exact realization completion.

Source

type ParameterError: Error + Send + Sync + 'static

Backend-specific loading failure.

Required Methods§

Source

fn materialize( lease: CheckpointLease, context: &Self::MaterializationContext, ) -> Result<Self::Materialization, Self::ParameterError>

Lowers one format-preserving encoded lease into a native weight.

Source

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.

Source

fn materialized_weight( materialization: &Self::Materialization, ) -> &Self::MaterializedWeight

Borrows the native weight retained by an in-flight materialization.

Source

fn finish_materialization( materialization: Self::Materialization, ) -> Result<Self::MaterializedWeight, Self::ParameterError>

Waits for this exact realization and releases its encoded source lease.

Source

fn share_materialized_weight( weight: &Self::MaterializedWeight, ) -> Result<Self::MaterializedWeight, Self::ParameterError>

Creates another native handle to identical materialized storage without rereading or rematerializing checkpoint data.

Source

fn validate_bind( parameter: &Self::Parameter, weight: &Self::MaterializedWeight, ) -> Result<(), Self::ParameterError>

Validates destination shape/storage compatibility without publication.

Source

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".

Implementors§