Skip to main content

DialectTypes

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)],
        info: &Info,
        flags: &Flags<D>,
    ) -> Result;
    fn compile_local_memory_qualifier(f: &mut Formatter<'_>) -> Result;

    // Provided methods
    fn compile_atomic_kind(
        f: &mut Formatter<'_>,
        kind: &AtomicKind<D>,
    ) -> Result { ... }
    fn compile_shared_memory_declaration(
        f: &mut Formatter<'_>,
        shared: &SharedMemory<D>,
    ) -> Result { ... }
    fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags<D>) -> 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)], info: &Info, flags: &Flags<D>, ) -> Result

Source

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

Provided Methods§

Source

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

Source

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

Source

fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags<D>) -> 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".

Implementors§