pub struct Config { /* private fields */ }Expand description
Configuration/builder for options for Rust code generation.
This configuration allows you to control syntactic characteristics of the output, and also Rust features that have no equivalent in shader languages.
Implementations§
Source§impl Config
impl Config
Sourcepub fn explicit_types(self, value: bool) -> Self
pub fn explicit_types(self, value: bool) -> Self
Sets whether the generated code contains explicit types when they could be omitted.
The default is false.
Sourcepub fn raw_pointers(self, value: bool) -> Self
pub fn raw_pointers(self, value: bool) -> Self
Sets whether the generated code uses raw pointers instead of references.
The resulting code may be unsound if the input module uses pointers incorrectly.
Currently, this does not actually work, in that it generates code which does not
even try to unsafely dereference the raw pointers it uses.
The exact behavior of this option is not yet decided, but it will likely cause the
generated functions to be unsafe fns.
The default is false.
TODO: This should be configurable on a per-function basis.
Sourcepub fn public_items(self, value: bool) -> Self
pub fn public_items(self, value: bool) -> Self
Sets whether generated items have pub visibility instead of private.
This option applies to all functions or methods, and all fields of generated structs.
The default is false.
Sourcepub fn allow_unimplemented(self, value: bool) -> Self
pub fn allow_unimplemented(self, value: bool) -> Self
Sets whether to allow the generated code to panic on entering code that cannot be translated, rather than failing generation.
This applies to all unsupported expressions and statements, but not to unsupported types.
The default is false.
Sourcepub fn runtime_path(self, value: impl Into<Cow<'static, str>>) -> Self
pub fn runtime_path(self, value: impl Into<Cow<'static, str>>) -> Self
Sets the Rust module path to the runtime support library.
The default is "::naga_rust_rt".
§Panics
May panic if the path is not syntactically valid or not an absolute path.
Sourcepub fn global_struct(self, name: impl Into<String>) -> Self
pub fn global_struct(self, name: impl Into<String>) -> Self
Allow declarations of global variables, generate a struct with the given name to hold
them, and make all functions methods of that struct.
The struct has one constructor method, which is declared as either
const fn new() or const fn new(resources: &ResourceStructName)
depending on whether resource_struct() is also set.
If there are no parameters, then it also implements Default.
If this option is not set, shaders may not contain declarations of variables with
address spaces private or workgroup.
Sourcepub fn resource_struct(self, name: impl Into<String>) -> Self
pub fn resource_struct(self, name: impl Into<String>) -> Self
Allow declarations of resources (e.g. uniforms), generate a struct with the given name to
hold them, and, if global_struct() is not also set,
make all functions methods of that struct.
If this option is not set, shaders may not contain declarations of variables with
address spaces uniform or storage.