Trait DialectTypes

Source
pub trait DialectTypes<D: Dialect> {
    // Required methods
    fn item_can_be_optimized() -> bool;
    fn compile_elem(f: &mut Formatter<'_>, elem: &Elem<D>, word: bool) -> Result;
    fn compile_item(f: &mut Formatter<'_>, item: &Item<D>) -> Result;
    fn compile_type_definitions(
        f: &mut Formatter<'_>,
        items: &HashSet<Item<D>>,
        scalars: &[(Elem<D>, usize)],
        flags: &Flags,
    ) -> Result;
    fn compile_local_memory_qualifier(f: &mut Formatter<'_>) -> Result;
    fn compile_shared_memory_qualifier(
        f: &mut Formatter<'_>,
        shared: &SharedMemory<D>,
    ) -> Result;

    // Provided methods
    fn compile_atomic_kind(
        f: &mut Formatter<'_>,
        kind: &AtomicKind<D>,
    ) -> Result { ... }
    fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags) -> Result { ... }
    fn address_space_for_variable(_variable: &Variable<D>) -> String { ... }
}

Required Methods§

Source

fn item_can_be_optimized() -> bool

Source

fn compile_elem(f: &mut Formatter<'_>, elem: &Elem<D>, word: bool) -> Result

Source

fn compile_item(f: &mut Formatter<'_>, item: &Item<D>) -> Result

Source

fn compile_type_definitions( f: &mut Formatter<'_>, items: &HashSet<Item<D>>, scalars: &[(Elem<D>, usize)], flags: &Flags, ) -> Result

Source

fn compile_local_memory_qualifier(f: &mut Formatter<'_>) -> Result

Source

fn compile_shared_memory_qualifier( f: &mut Formatter<'_>, shared: &SharedMemory<D>, ) -> Result

Provided Methods§

Source

fn compile_atomic_kind(f: &mut Formatter<'_>, kind: &AtomicKind<D>) -> Result

Source

fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags) -> Result

Source

fn address_space_for_variable(_variable: &Variable<D>) -> String

Address space (for Metal dialect only).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§