Macro message
message!() { /* proc-macro */ }Expand description
Generates a function that creates and registers an instance of the declared message type.
Example:
ⓘ
kanzi::message!(CustomMessage {
arguments_type: kanzi::node_component::NodeComponentMessageArguments,
name: "RustNodeComponent.CustomMessage",
routing: kanzi::MessageRouting::Tunneling,
metadata: EditorInfo {
display_name: "RustNodeComponent.CustomMessage",
custom_attributes: CustomAttributes {
custom_key: "CustomValue",
}
}
})Generic attributes for EditorInfo include:
display_name, tooltip, category, studio_visibility, legacy_name.
If no attributes are needed, metadata field can be skipped completely.
When the message is declared with this macro, a create function is generated.
This function can be called to create and register the property in Kanzi.
ⓘ
const PROPERTY_NAME: &str = "Image2D.Image";
kanzi::message!(CustomMessage {
arguments_type: kanzi::node_component::NodeComponentMessageArguments,
name: "RustNodeComponent.CustomMessage",
routing: kanzi::MessageRouting::Tunneling,
});
// Create and register declared message
let message = create_custom_message(&domain)?;
// This message can be used for creating an instance of specified arguments.
let args = message.create_args(&domain)?;
assert!(args.get_target_name()?.is_empty());
args.set_target_name("TargetObject")?;
assert_eq!(args.get_target_name()?, "TargetObject");