Trait ArrayToArrayCodecTraits

Source
pub trait ArrayToArrayCodecTraits: ArrayCodecTraits + Debug {
    // Required methods
    fn into_dyn(self: Arc<Self>) -> Arc<dyn ArrayToArrayCodecTraits>;
    fn encoded_data_type(
        &self,
        decoded_data_type: &DataType,
    ) -> Result<DataType, CodecError>;
    fn encode<'a>(
        &self,
        bytes: ArrayBytes<'a>,
        decoded_representation: &ChunkRepresentation,
        options: &CodecOptions,
    ) -> Result<ArrayBytes<'a>, CodecError>;
    fn decode<'a>(
        &self,
        bytes: ArrayBytes<'a>,
        decoded_representation: &ChunkRepresentation,
        options: &CodecOptions,
    ) -> Result<ArrayBytes<'a>, CodecError>;

    // Provided methods
    fn encoded_fill_value(
        &self,
        decoded_data_type: &DataType,
        decoded_fill_value: &FillValue,
    ) -> Result<FillValue, CodecError> { ... }
    fn encoded_shape(
        &self,
        decoded_shape: &[NonZeroU64],
    ) -> Result<ChunkShape, CodecError> { ... }
    fn decoded_shape(
        &self,
        encoded_shape: &[NonZeroU64],
    ) -> Result<Option<ChunkShape>, CodecError> { ... }
    fn encoded_representation(
        &self,
        decoded_representation: &ChunkRepresentation,
    ) -> Result<ChunkRepresentation, CodecError> { ... }
    fn partial_decoder(
        self: Arc<Self>,
        input_handle: Arc<dyn ArrayPartialDecoderTraits>,
        decoded_representation: &ChunkRepresentation,
        options: &CodecOptions,
    ) -> Result<Arc<dyn ArrayPartialDecoderTraits>, CodecError> { ... }
    fn partial_encoder(
        self: Arc<Self>,
        input_handle: Arc<dyn ArrayPartialDecoderTraits>,
        output_handle: Arc<dyn ArrayPartialEncoderTraits>,
        decoded_representation: &ChunkRepresentation,
        options: &CodecOptions,
    ) -> Result<Arc<dyn ArrayPartialEncoderTraits>, CodecError> { ... }
    fn async_partial_decoder<'life0, 'life1, 'async_trait>(
        self: Arc<Self>,
        input_handle: Arc<dyn AsyncArrayPartialDecoderTraits>,
        decoded_representation: &'life0 ChunkRepresentation,
        options: &'life1 CodecOptions,
    ) -> Pin<Box<dyn Future<Output = Result<Arc<dyn AsyncArrayPartialDecoderTraits>, CodecError>> + Send + 'async_trait>>
       where Self: Sync + Send + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn async_partial_encoder(
        self: Arc<Self>,
        input_handle: Arc<dyn AsyncArrayPartialDecoderTraits>,
        output_handle: Arc<dyn AsyncArrayPartialEncoderTraits>,
        decoded_representation: &ChunkRepresentation,
        options: &CodecOptions,
    ) -> Result<Arc<dyn AsyncArrayPartialEncoderTraits>, CodecError> { ... }
}
Expand description

Traits for array to array codecs.

Required Methods§

Source

fn into_dyn(self: Arc<Self>) -> Arc<dyn ArrayToArrayCodecTraits>

Return a dynamic version of the codec.

Source

fn encoded_data_type( &self, decoded_data_type: &DataType, ) -> Result<DataType, CodecError>

Returns the encoded data type for a given decoded data type.

§Errors

Returns a CodecError if the data type is not supported by this codec.

Source

fn encode<'a>( &self, bytes: ArrayBytes<'a>, decoded_representation: &ChunkRepresentation, options: &CodecOptions, ) -> Result<ArrayBytes<'a>, CodecError>

Encode a chunk.

§Errors

Returns CodecError if a codec fails or bytes is incompatible with decoded_representation.

Source

fn decode<'a>( &self, bytes: ArrayBytes<'a>, decoded_representation: &ChunkRepresentation, options: &CodecOptions, ) -> Result<ArrayBytes<'a>, CodecError>

Decode a chunk.

§Errors

Returns CodecError if a codec fails or the decoded output is incompatible with decoded_representation.

Provided Methods§

Source

fn encoded_fill_value( &self, decoded_data_type: &DataType, decoded_fill_value: &FillValue, ) -> Result<FillValue, CodecError>

Returns the encoded fill value for a given decoded fill value

The encoded fill value is computed by applying ArrayToArrayCodecTraits::encode to the decoded_fill_value. This may need to be implemented manually if a codec does not support encoding a single element or the encoding is otherwise dependent on the chunk shape.

§Errors

Returns a CodecError if the data type is not supported by this codec.

Source

fn encoded_shape( &self, decoded_shape: &[NonZeroU64], ) -> Result<ChunkShape, CodecError>

Returns the shape of the encoded chunk for a given decoded chunk shape.

The default implementation returns the shape unchanged.

§Errors

Returns a CodecError if the shape is not supported by this codec.

Source

fn decoded_shape( &self, encoded_shape: &[NonZeroU64], ) -> Result<Option<ChunkShape>, CodecError>

Returns the shape of the decoded chunk for a given encoded chunk shape.

The default implementation returns the shape unchanged.

Returns None if the decoded shape cannot be determined from the encoded shape.

§Errors

Returns a CodecError if the shape is not supported by this codec.

Source

fn encoded_representation( &self, decoded_representation: &ChunkRepresentation, ) -> Result<ChunkRepresentation, CodecError>

Returns the encoded chunk representation given the decoded chunk representation.

The default implementation returns the chunk representation from the outputs of

§Errors

Returns a CodecError if the decoded chunk representation is not supported by this codec.

Source

fn partial_decoder( self: Arc<Self>, input_handle: Arc<dyn ArrayPartialDecoderTraits>, decoded_representation: &ChunkRepresentation, options: &CodecOptions, ) -> Result<Arc<dyn ArrayPartialDecoderTraits>, CodecError>

Initialise a partial decoder.

The default implementation decodes the entire chunk.

§Errors

Returns a CodecError if initialisation fails.

Source

fn partial_encoder( self: Arc<Self>, input_handle: Arc<dyn ArrayPartialDecoderTraits>, output_handle: Arc<dyn ArrayPartialEncoderTraits>, decoded_representation: &ChunkRepresentation, options: &CodecOptions, ) -> Result<Arc<dyn ArrayPartialEncoderTraits>, CodecError>

Initialise a partial encoder.

The default implementation reencodes the entire chunk.

§Errors

Returns a CodecError if initialisation fails.

Source

fn async_partial_decoder<'life0, 'life1, 'async_trait>( self: Arc<Self>, input_handle: Arc<dyn AsyncArrayPartialDecoderTraits>, decoded_representation: &'life0 ChunkRepresentation, options: &'life1 CodecOptions, ) -> Pin<Box<dyn Future<Output = Result<Arc<dyn AsyncArrayPartialDecoderTraits>, CodecError>> + Send + 'async_trait>>
where Self: Sync + Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Available on crate feature async only.

Initialise an asynchronous partial decoder.

The default implementation decodes the entire chunk.

§Errors

Returns a CodecError if initialisation fails.

Source

fn async_partial_encoder( self: Arc<Self>, input_handle: Arc<dyn AsyncArrayPartialDecoderTraits>, output_handle: Arc<dyn AsyncArrayPartialEncoderTraits>, decoded_representation: &ChunkRepresentation, options: &CodecOptions, ) -> Result<Arc<dyn AsyncArrayPartialEncoderTraits>, CodecError>

Available on crate feature async only.

Initialise an asynchronous partial encoder.

The default implementation reencodes the entire chunk.

§Errors

Returns a CodecError if initialisation fails.

Implementors§

Source§

impl ArrayToArrayCodecTraits for BitroundCodec

Available on crate feature bitround only.
Source§

impl ArrayToArrayCodecTraits for FixedScaleOffsetCodec

Source§

impl ArrayToArrayCodecTraits for SqueezeCodec

Source§

impl ArrayToArrayCodecTraits for TransposeCodec

Available on crate feature transpose only.