Expand description
Derive macros for Behaviors.
There are 4 derive macros available:
- Action
- Condition
- Control
- Decorator
On struct level there are the attributes
#[behavior(no_create)]: will suppress the derive of create_fn(…)#[behavior(no_register)]: will suppress the derive of register()#[behavior(no_register_with)]: will suppress the derive of register_with(…)
On field level there are the attributes
#[behavior(parameter)]: defines a field as a parameter forcreate_fn(...)andregister_with(...)The values must be given when using theregister_with(...)method. A parameter must implementClone.#[behavior(default = <Expression>)]: defines a default value for a field. ‘Expression’ can be any Rust expression that creates an appropriate value out of nothing.
§Usage
Example uses the derive macro Action, the others work respectively.
#[derive(Action)]
struct MyAction {
// specific elements
...
}
impl MyAction {
// your specific implementations
...
}§Errors
- if attributes are used in a wrong way
§Panics
- if used on enums or unions or functions