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§
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
Provided Methods§
fn compile_atomic_kind(f: &mut Formatter<'_>, kind: &AtomicKind<D>) -> Result
fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags) -> Result
Sourcefn address_space_for_variable(_variable: &Variable<D>) -> String
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.