Skip to main content

Encoder

Trait Encoder 

Source
pub trait Encoder: Send + Sync {
    // Required methods
    fn codec(&self) -> Codec;
    fn encode(&self, values: &[f32]) -> Result<EncodedVector, EncodingError>;
    fn decode(&self, ev: &EncodedVector) -> Result<Vec<f32>, EncodingError>;
}
Expand description

Encoder trait. Each codec ships exactly one impl.

Required Methods§

Source

fn codec(&self) -> Codec

Codec identifier produced by this encoder.

Source

fn encode(&self, values: &[f32]) -> Result<EncodedVector, EncodingError>

Encode values into an EncodedVector.

§Errors

Returns EncodingError::EmptyVector for a zero-dim input, EncodingError::DimensionTooLarge for >65535 dimensions, and EncodingError::NonFinite for any non-finite component.

Source

fn decode(&self, ev: &EncodedVector) -> Result<Vec<f32>, EncodingError>

Decode an EncodedVector back to Vec<f32>.

§Errors

Returns EncodingError::CodecMismatch when the EncodedVector was produced by a different codec, and EncodingError::Malformed when the payload byte count does not match the recorded dimension.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§