[][src]Trait c2_chacha::guts::Machine

pub trait Machine: Copy {
    type u32x4: u32x4<Self>;
    type u64x2: u64x2<Self>;
    type u128x1: u128x1<Self>;
    type u32x4x2: u32x4x2<Self>;
    type u64x2x2: u64x2x2<Self>;
    type u64x4: u64x4<Self>;
    type u128x2: u128x2<Self>;
    type u32x4x4: u32x4x4<Self>;
    type u64x2x4: u64x2x4<Self>;
    type u128x4: u128x4<Self>;
    unsafe fn instance() -> Self;

    fn unpack<S, V>(self, s: S) -> V
    where
        V: Store<S>
, { ... }
fn vec<V, A>(self, a: A) -> V
    where
        V: MultiLane<A>
, { ... }
fn read_le<V>(self, input: &[u8]) -> V
    where
        V: StoreBytes
, { ... }
fn read_be<V>(self, input: &[u8]) -> V
    where
        V: StoreBytes
, { ... } }

Associated Types

type u32x4: u32x4<Self>

type u64x2: u64x2<Self>

type u128x1: u128x1<Self>

type u32x4x2: u32x4x2<Self>

type u64x2x2: u64x2x2<Self>

type u64x4: u64x4<Self>

type u128x2: u128x2<Self>

type u32x4x4: u32x4x4<Self>

type u64x2x4: u64x2x4<Self>

type u128x4: u128x4<Self>

Loading content...

Required methods

unsafe fn instance() -> Self

Loading content...

Provided methods

fn unpack<S, V>(self, s: S) -> V where
    V: Store<S>, 

fn vec<V, A>(self, a: A) -> V where
    V: MultiLane<A>, 

fn read_le<V>(self, input: &[u8]) -> V where
    V: StoreBytes

fn read_be<V>(self, input: &[u8]) -> V where
    V: StoreBytes

Loading content...

Implementations on Foreign Types

impl<S3, S4, NI> Machine for SseMachine<S3, S4, NI> where
    NI: Copy,
    S3: Copy,
    S4: Copy,
    u128x1_sse2<S3, S4, NI>: Swap64,
    u64x2_sse2<S3, S4, NI>: BSwap,
    u64x2_sse2<S3, S4, NI>: RotateEachWord32,
    u64x2_sse2<S3, S4, NI>: MultiLane<[u64; 2]>,
    u64x2_sse2<S3, S4, NI>: Vec2<u64>,
    u32x4_sse2<S3, S4, NI>: BSwap,
    u32x4_sse2<S3, S4, NI>: RotateEachWord32,
    u32x4_sse2<S3, S4, NI>: MultiLane<[u32; 4]>,
    u32x4_sse2<S3, S4, NI>: Vec4<u32>,
    x2<u64x2_sse2<S3, S4, NI>, G1>: BSwap,
    x2<u64x2_sse2<S3, S4, NI>, G1>: Words4,
    u128x1_sse2<S3, S4, NI>: BSwap,
    x2<u128x1_sse2<S3, S4, NI>, G0>: Into<x2<u64x2_sse2<S3, S4, NI>, G0>>,
    x2<u128x1_sse2<S3, S4, NI>, G0>: Into<x2<u64x2_sse2<S3, S4, NI>, G1>>,
    x2<u128x1_sse2<S3, S4, NI>, G0>: Into<x2<u32x4_sse2<S3, S4, NI>, G0>>,
    x4<u128x1_sse2<S3, S4, NI>>: Into<x4<u64x2_sse2<S3, S4, NI>>>,
    x4<u128x1_sse2<S3, S4, NI>>: Into<x4<u32x4_sse2<S3, S4, NI>>>, 
[src]

type u32x4 = u32x4_sse2<S3, S4, NI>

type u64x2 = u64x2_sse2<S3, S4, NI>

type u128x1 = u128x1_sse2<S3, S4, NI>

type u32x4x2 = x2<u32x4_sse2<S3, S4, NI>, G0>

type u64x2x2 = x2<u64x2_sse2<S3, S4, NI>, G0>

type u64x4 = x2<u64x2_sse2<S3, S4, NI>, G1>

type u128x2 = x2<u128x1_sse2<S3, S4, NI>, G0>

type u32x4x4 = x4<u32x4_sse2<S3, S4, NI>>

type u64x2x4 = x4<u64x2_sse2<S3, S4, NI>>

type u128x4 = x4<u128x1_sse2<S3, S4, NI>>

fn unpack<S, V>(self, s: S) -> V where
    V: Store<S>, 
[src]

fn vec<V, A>(self, a: A) -> V where
    V: MultiLane<A>, 
[src]

fn read_le<V>(self, input: &[u8]) -> V where
    V: StoreBytes
[src]

fn read_be<V>(self, input: &[u8]) -> V where
    V: StoreBytes
[src]

impl<NI> Machine for Avx2Machine<NI> where
    NI: Copy,
    u128x1_sse2<YesS3, YesS4, NI>: BSwap,
    u128x1_sse2<YesS3, YesS4, NI>: Swap64,
    u64x2_sse2<YesS3, YesS4, NI>: BSwap,
    u64x2_sse2<YesS3, YesS4, NI>: RotateEachWord32,
    u64x2_sse2<YesS3, YesS4, NI>: MultiLane<[u64; 2]>,
    u64x2_sse2<YesS3, YesS4, NI>: Vec2<u64>,
    u32x4_sse2<YesS3, YesS4, NI>: BSwap,
    u32x4_sse2<YesS3, YesS4, NI>: RotateEachWord32,
    u32x4_sse2<YesS3, YesS4, NI>: MultiLane<[u32; 4]>,
    u32x4_sse2<YesS3, YesS4, NI>: Vec4<u32>,
    x2<u64x2_sse2<YesS3, YesS4, NI>, G1>: BSwap,
    x2<u64x2_sse2<YesS3, YesS4, NI>, G1>: Words4
[src]

type u32x4 = u32x4_sse2<YesS3, YesS4, NI>

type u64x2 = u64x2_sse2<YesS3, YesS4, NI>

type u128x1 = u128x1_sse2<YesS3, YesS4, NI>

type u32x4x2 = x2<u32x4_sse2<YesS3, YesS4, NI>, G0>

type u64x2x2 = x2<u64x2_sse2<YesS3, YesS4, NI>, G0>

type u64x4 = x2<u64x2_sse2<YesS3, YesS4, NI>, G1>

type u128x2 = x2<u128x1_sse2<YesS3, YesS4, NI>, G0>

type u32x4x4 = u32x4x4_avx2<NI>

type u64x2x4 = x4<u64x2_sse2<YesS3, YesS4, NI>>

type u128x4 = x4<u128x1_sse2<YesS3, YesS4, NI>>

fn unpack<S, V>(self, s: S) -> V where
    V: Store<S>, 
[src]

fn vec<V, A>(self, a: A) -> V where
    V: MultiLane<A>, 
[src]

fn read_le<V>(self, input: &[u8]) -> V where
    V: StoreBytes
[src]

fn read_be<V>(self, input: &[u8]) -> V where
    V: StoreBytes
[src]

Loading content...

Implementors

Loading content...