Derive Macro glsl_lang::ast::NodeContent [−]
#[derive(NodeContent)]
{
// Attributes available to this derive:
#[lang_util]
}
Mark a type as representing data in an AST node
Examples
If the name of the data structure doesn’t end with Data, the lang_util::NodeContent trait
will just be implemented for that type.
ⓘ
use lang_util_derive::NodeContent; #[derive(NodeContent)] pub struct Declaration { pub name: String, }
If the name of the data structure ends with Data, the lang_util::NodeContent trait will be
implemented for that type, and a type alias for Node<T> will be declared for the suffix-less
name.
ⓘ
use lang_util_derive::NodeContent; #[derive(NodeContent)] pub struct DeclarationData { pub name: String, } // Will declare pub type Declaration = ::lang_util::node::Node<DeclarationData>;