beetry_core/tree.rs
1mod ticker;
2
3pub use ticker::{Error as TickerError, PeriodicTick, Ticker};
4
5use crate::{Node, TickStatus, root::Root};
6
7/// Behavior tree rooted at a [`Root`] node.
8pub struct Tree<N> {
9 root: Root<N>,
10}
11
12impl<N> Tree<N>
13where
14 N: Node,
15{
16 /// Create a new tree from the given root node.
17 pub fn new(root: Root<N>) -> Self {
18 Self { root }
19 }
20}
21
22impl<N> Node for Tree<N>
23where
24 N: Node,
25{
26 fn reset(&mut self) {
27 self.root.reset();
28 }
29
30 fn tick(&mut self) -> TickStatus {
31 self.root.tick()
32 }
33}