BB.Reactor.Dsl.Command (bb_reactor v0.2.2)

Copy Markdown View Source

DSL entity for executing BB commands in a Reactor.

The command entity wraps BB.Reactor.Step.Command with a cleaner syntax and automatic dependency handling.

Example

command :move do
  command :move_to_pose
  argument :target, input(:target_pose)
  timeout 30_000
  compensate :return_home
end

Summary

Types

t()

@type t() :: %BB.Reactor.Dsl.Command{
  __identifier__: any(),
  __spark_metadata__: Spark.Dsl.Entity.spark_meta(),
  arguments: [Reactor.Dsl.Argument.t()],
  async?: boolean(),
  command: atom(),
  compensate: atom() | nil,
  description: String.t() | nil,
  guards: [Reactor.Dsl.Where.t() | Reactor.Dsl.Guard.t()],
  max_retries: non_neg_integer(),
  name: atom(),
  timeout: pos_integer() | :infinity,
  transform: nil | (any() -> any())
}