Jido.BehaviorTree.Status (Jido Behavior Tree v1.0.0)

View Source

Defines the status types returned by behavior tree nodes.

Every node in a behavior tree returns one of three possible statuses:

  • :success - The node completed successfully
  • :failure - The node failed to complete
  • :running - The node is still executing and needs more ticks

Additional error status is provided for exceptional cases:

  • {:error, reason} - An unexpected error occurred during execution

Summary

Functions

Returns true if the status indicates the node has completed (success or failure).

Returns true if the status indicates an error occurred.

Returns true if the status indicates failure.

Converts a Jido Action result to a behavior tree status.

Converts a boolean to a behavior tree status.

Inverts the status (success becomes failure, failure becomes success). Running and error statuses are unchanged.

Returns true if the status indicates the node is still running.

Returns true if the status indicates success.

Types

t()

@type t() :: :success | :failure | :running | {:error, term()}

Functions

completed?(status)

@spec completed?(t()) :: boolean()

Returns true if the status indicates the node has completed (success or failure).

Examples

iex> Jido.BehaviorTree.Status.completed?(:success)
true

iex> Jido.BehaviorTree.Status.completed?(:failure)
true

iex> Jido.BehaviorTree.Status.completed?(:running)
false

error?(arg1)

@spec error?(t()) :: boolean()

Returns true if the status indicates an error occurred.

Examples

iex> Jido.BehaviorTree.Status.error?({:error, "something went wrong"})
true

iex> Jido.BehaviorTree.Status.error?(:failure)
false

failure?(arg1)

@spec failure?(t()) :: boolean()

Returns true if the status indicates failure.

Examples

iex> Jido.BehaviorTree.Status.failure?(:failure)
true

iex> Jido.BehaviorTree.Status.failure?(:success)
false

from_action_result(arg)

@spec from_action_result({:ok, term()} | {:error, term()}) :: t()

Converts a Jido Action result to a behavior tree status.

Examples

iex> Jido.BehaviorTree.Status.from_action_result({:ok, %{result: "success"}})
:success

iex> Jido.BehaviorTree.Status.from_action_result({:error, "failed"})
{:error, "failed"}

from_boolean(bool)

@spec from_boolean(boolean()) :: :success | :failure

Converts a boolean to a behavior tree status.

Examples

iex> Jido.BehaviorTree.Status.from_boolean(true)
:success

iex> Jido.BehaviorTree.Status.from_boolean(false)
:failure

invert(status)

@spec invert(t()) :: t()

Inverts the status (success becomes failure, failure becomes success). Running and error statuses are unchanged.

Examples

iex> Jido.BehaviorTree.Status.invert(:success)
:failure

iex> Jido.BehaviorTree.Status.invert(:failure)
:success

iex> Jido.BehaviorTree.Status.invert(:running)
:running

running?(arg1)

@spec running?(t()) :: boolean()

Returns true if the status indicates the node is still running.

Examples

iex> Jido.BehaviorTree.Status.running?(:running)
true

iex> Jido.BehaviorTree.Status.running?(:success)
false

success?(arg1)

@spec success?(t()) :: boolean()

Returns true if the status indicates success.

Examples

iex> Jido.BehaviorTree.Status.success?(:success)
true

iex> Jido.BehaviorTree.Status.success?(:failure)
false