Skip to main content

GenericFeatureNodeX4

Trait GenericFeatureNodeX4 

Source
pub trait GenericFeatureNodeX4<N: Node>: GenericFeatureNodeX1<N> {
    // Required method
    unsafe fn map_buffer_to_next_x4(
        &self,
        vm: &MainRef,
        node: &mut NodeRuntimeRef<N>,
        b: &mut [&mut BufferRef<N::FeatureData>; 4],
    ) -> [FeatureNextNode<N::NextNodes>; 4];

    // Provided methods
    fn prefetch_buffer_x4(
        &self,
        _vm: &MainRef,
        _node: &mut NodeRuntimeRef<N>,
        b: &mut [&mut BufferRef<N::FeatureData>; 4],
    ) { ... }
    unsafe fn trace_buffer(
        &self,
        _vm: &MainRef,
        _node: &mut NodeRuntimeRef<N>,
        _b0: &mut BufferRef<N::FeatureData>,
    ) { ... }
}
Expand description

Trait for generic node implementations processing one buffer at a time in a feature arc

Required Methods§

Source

unsafe fn map_buffer_to_next_x4( &self, vm: &MainRef, node: &mut NodeRuntimeRef<N>, b: &mut [&mut BufferRef<N::FeatureData>; 4], ) -> [FeatureNextNode<N::NextNodes>; 4]

Process four buffers and determining the next nodes to send them to

§Safety

The safety preconditions vary depending on the specific implementation.

Provided Methods§

Source

fn prefetch_buffer_x4( &self, _vm: &MainRef, _node: &mut NodeRuntimeRef<N>, b: &mut [&mut BufferRef<N::FeatureData>; 4], )

Performing prefetching for a given buffer

Source

unsafe fn trace_buffer( &self, _vm: &MainRef, _node: &mut NodeRuntimeRef<N>, _b0: &mut BufferRef<N::FeatureData>, )

Trace a buffer

This is optional and can be empty if tracing is implemented in GenericFeatureNodeX4::map_buffer_to_next_x4 and GenericFeatureNodeX1::map_buffer_to_next instead.

§Safety

The safety preconditions vary depending on the specific implementation.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§