Skip to main content

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}