# [−] [src] Trait ppv_lite86::Machine

    pub trait Machine: Sized + 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: Store<S>>(self, s: S) -> V { ... }
        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: Store<S>>(self, s: S) -> V`

### `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...

## Implementors

### `impl<NI: Copy> Machine for Avx2Machine<NI> where
u128x1_sse2<YesS3, YesS4, NI>: BSwap + Swap64,
u64x2_sse2<YesS3, YesS4, NI>: BSwap + RotateEachWord32 + MultiLane<[u64; 2]> + Vec2<u64>,
u32x4_sse2<YesS3, YesS4, NI>: BSwap + RotateEachWord32 + MultiLane<[u32; 4]> + Vec4<u32>,
x2<u64x2_sse2<YesS3, YesS4, NI>, G1>: BSwap + 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>>`

#### `unsafe fn instance() -> Self` [src]

#### `fn unpack<S, V: Store<S>>(self, s: S) -> V` [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<S3: Copy, S4: Copy, NI: Copy> Machine for SseMachine<S3, S4, NI> where
u128x1_sse2<S3, S4, NI>: Swap64,
u64x2_sse2<S3, S4, NI>: BSwap + RotateEachWord32 + MultiLane<[u64; 2]> + Vec2<u64>,
u32x4_sse2<S3, S4, NI>: BSwap + RotateEachWord32 + MultiLane<[u32; 4]> + Vec4<u32>,
x2<u64x2_sse2<S3, S4, NI>, G1>: BSwap + 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>>`

#### `unsafe fn instance() -> Self` [src]

#### `fn unpack<S, V: Store<S>>(self, s: S) -> V` [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...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)