Trait Transformation

Source
pub trait Transformation<Input, Output>: Sync {
    // Required method
    fn transform(&self, data: &Input) -> Output;
}
Expand description

Generic transformation trait that is used both for scalars and packed fields

Required Methods§

Source

fn transform(&self, data: &Input) -> Output

Implementors§

Source§

impl<IF, OF, IEP, OEP, T> Transformation<IEP, OEP> for SubfieldTransformer<IF, OF, T>
where IF: Field, OF: Field, IEP: PackedExtension<IF>, OEP: PackedExtension<OF>, T: Transformation<PackedSubfield<IEP, IF>, PackedSubfield<OEP, OF>>,

Source§

impl<IF: BinaryField, OF: BinaryField, Data: AsRef<[OF]> + Sync> Transformation<IF, OF> for FieldLinearTransformation<OF, Data>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES2x16x8b, ByteSlicedAES2x16x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES4x16x8b, ByteSlicedAES4x16x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES8x16x8b, ByteSlicedAES8x16x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x8b, ByteSlicedAES16x8b> for TransformationWrapperNxN<Inner, { <TowerLevel1 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x16b, ByteSlicedAES16x16b> for TransformationWrapperNxN<Inner, { <TowerLevel2 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x16x8b, ByteSlicedAES16x16x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x32b, ByteSlicedAES16x32b> for TransformationWrapperNxN<Inner, { <TowerLevel4 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x64b, ByteSlicedAES16x64b> for TransformationWrapperNxN<Inner, { <TowerLevel8 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x128b, ByteSlicedAES16x128b> for TransformationWrapperNxN<Inner, { <TowerLevel16 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES2x32x8b, ByteSlicedAES2x32x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES4x32x8b, ByteSlicedAES4x32x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES8x32x8b, ByteSlicedAES8x32x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES16x32x8b, ByteSlicedAES16x32x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES32x8b, ByteSlicedAES32x8b> for TransformationWrapperNxN<Inner, { <TowerLevel1 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES32x16b, ByteSlicedAES32x16b> for TransformationWrapperNxN<Inner, { <TowerLevel2 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES32x32b, ByteSlicedAES32x32b> for TransformationWrapperNxN<Inner, { <TowerLevel4 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES32x64b, ByteSlicedAES32x64b> for TransformationWrapperNxN<Inner, { <TowerLevel8 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField32x8b, PackedAESBinaryField32x8b>> Transformation<ByteSlicedAES32x128b, ByteSlicedAES32x128b> for TransformationWrapperNxN<Inner, { <TowerLevel16 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES2x64x8b, ByteSlicedAES2x64x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES4x64x8b, ByteSlicedAES4x64x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES8x64x8b, ByteSlicedAES8x64x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES16x64x8b, ByteSlicedAES16x64x8b> for TransformationWrapper8b<Inner>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES64x8b, ByteSlicedAES64x8b> for TransformationWrapperNxN<Inner, { <TowerLevel1 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES64x16b, ByteSlicedAES64x16b> for TransformationWrapperNxN<Inner, { <TowerLevel2 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES64x32b, ByteSlicedAES64x32b> for TransformationWrapperNxN<Inner, { <TowerLevel4 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES64x64b, ByteSlicedAES64x64b> for TransformationWrapperNxN<Inner, { <TowerLevel8 as TowerLevel>::WIDTH }>

Source§

impl<Inner: Transformation<PackedAESBinaryField64x8b, PackedAESBinaryField64x8b>> Transformation<ByteSlicedAES64x128b, ByteSlicedAES64x128b> for TransformationWrapperNxN<Inner, { <TowerLevel16 as TowerLevel>::WIDTH }>