Skip to main content

Crate behaviortree_derive

Crate behaviortree_derive 

Source
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 for create_fn(...) and register_with(...) The values must be given when using the register_with(...) method. A parameter must implement Clone.
  • #[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

Derive Macros§

Action
Derive macro for an Action type Behavior, usage.
Condition
Derive macro for an Condition type Behavior, usage.
Control
Derive macro for an Control type Behavior, usage.
Decorator
Derive macro for an Decorator type Behavior, usage.