pub struct SwizzleReshapeCodec {
    pub axes: Vec<AxisGroup>,
}
Expand description

Codec to swizzle/swap the axes of an array and reshape it.

This codec does not store metadata about the original shape of the array. Since axes that have been combined during encoding cannot be split without further information, decoding may fail if an output array is not provided.

Swizzling axes is always supported since no additional information about the array’s shape is required to reconstruct it.

Fields§

§axes: Vec<AxisGroup>

The permutation of the axes that is applied on encoding.

The permutation is given as a list of axis groups, where each group corresponds to one encoded output axis that may consist of several decoded input axes. For instance, [[0], [1, 2]] flattens a three- dimensional array into a two-dimensional one by combining the second and third axes.

The permutation also allows specifying a special catch-all remaining axes marker:

  • [[0], {}] moves the second axis to be the first and appends all other axes afterwards, i.e. the encoded array has the same number of axes as the input array
  • [[0], [{}]] in contrast collapses all other axes into one, i.e. the encoded array is two-dimensional

Trait Implementations§

source§

impl Clone for SwizzleReshapeCodec

source§

fn clone(&self) -> SwizzleReshapeCodec

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Codec for SwizzleReshapeCodec

source§

type Error = SwizzleReshapeCodecError

Error type that may be returned during encodeing and decodeing.
source§

fn encode(&self, data: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>

Encodes the data and returns the result. Read more
source§

fn decode(&self, encoded: AnyCowArray<'_>) -> Result<AnyArray, Self::Error>

Decodes the encoded data and returns the result. Read more
source§

fn decode_into( &self, encoded: AnyArrayView<'_>, decoded: AnyArrayViewMut<'_>, ) -> Result<(), Self::Error>

Decodes the encoded data and writes the result into the provided decoded output. Read more
source§

impl<'de> Deserialize<'de> for SwizzleReshapeCodec

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl JsonSchema for SwizzleReshapeCodec

source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn always_inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
source§

impl Serialize for SwizzleReshapeCodec

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StaticCodec for SwizzleReshapeCodec

source§

const CODEC_ID: &'static str = "swizzle-reshape"

Codec identifier.
source§

type Config<'de> = SwizzleReshapeCodec

Configuration type, from which the codec can be created infallibly. Read more
source§

fn from_config(config: Self::Config<'_>) -> Self

Instantiate a codec from its configuration.
source§

fn get_config(&self) -> StaticCodecConfig<'_, Self>

Get the configuration for this codec. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> DynCodec for T
where T: StaticCodec,

source§

type Type = StaticCodecType<T>

Type object type for this codec.
source§

fn ty(&self) -> <T as DynCodec>::Type

Returns the type object for this codec.
source§

fn get_config<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serializes the configuration parameters for this codec. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,