behaviortree 0.8.0

A #![no_std] compatible behavior tree library similar to BehaviorTree.CPP.
Documentation
// Copyright © 2025 Stephan Kunz
//! Most commonly used interfaces of [`behaviortree`](crate).
//!
//! Typically it is sufficient to include the prelude with
//!
//! ```use behaviortree::prelude::*;```

#[doc(hidden)]
pub extern crate alloc;
// re-exports from alloc
pub use alloc::{
	boxed::Box,
	str::FromStr,
	string::{String, ToString},
	vec,
	vec::Vec,
};

#[doc(hidden)]
pub extern crate async_trait;
#[doc(hidden)]
pub extern crate behaviortree_behaviors;
#[doc(hidden)]
pub extern crate behaviortree_core;
#[doc(hidden)]
#[cfg(feature = "factory")]
pub extern crate behaviortree_factory;
#[doc(hidden)]
pub extern crate databoard;
#[doc(hidden)]
pub extern crate dataport;
#[doc(hidden)]
pub extern crate tinyscript;

// A unified error type
pub use crate::error::Error;

// re-export the concurrency artefacts
pub use dataport::{Arc, Mutex, RwLock};

#[cfg(feature = "observer")]
pub use behaviortree_core::BehaviorTreeObserver;
pub use behaviortree_core::{
	Behavior, BehaviorCreationFn, BehaviorData, BehaviorDescription, BehaviorExecution, BehaviorKind, BehaviorRegistry,
	BehaviorResult, BehaviorState, BehaviorTree, BehaviorTreeElementList, EMPTY_STR, Error as BehaviorError,
	behaviors::sub_tree::SubTree, port_array_init, register_scripting_enum,
};
#[cfg(feature = "groot")]
pub use behaviortree_core::{Groot2Connector, XmlCreator};
#[cfg(feature = "mock_behavior")]
pub use behaviortree_core::{MockBehavior, MockBehaviorConfig};

// re-export derive artefacts
pub use behaviortree_derive::{Action, Condition, Control, Decorator};

// re-export factory artefacts
#[cfg(feature = "simple_behavior")]
pub use behaviortree_factory::register_simple_behavior;
#[cfg(feature = "mock_behavior")]
pub use behaviortree_factory::registry::SubstitutionRule;
#[cfg(feature = "factory")]
pub use behaviortree_factory::{BehaviorTreeFactory, Error as FactoryError};

// re-export databoard artefacts
pub use databoard::Databoard;

// re-export dataport artefacts
pub use dataport::{
	PortArray, PortCollection, PortCollectionAccessors, PortCollectionAccessorsCommon, PortCollectionProvider, PortList,
	PortMap, PortVec, create_inbound_entry, create_inbound_entry_parseable, create_inoutbound_entry,
	create_inoutbound_entry_parseable, create_outbound_entry, create_outbound_entry_parseable, create_port_vec,
};

// re-export tinyscript artefacts
pub use tinyscript::{Runtime, ScriptEnum, SharedRuntime};