ratatui-toolkit 0.2.6

DEPRECATED: this crate was renamed to `ratkit`. Please migrate to `ratkit`.
Documentation
use crate::primitives::tree_view::TreeNode;
use crate::widgets::file_system_tree::{FileSystemEntry, FileSystemTree};

impl<'a> FileSystemTree<'a> {
    pub fn get_entry_at_path(&self, path: &[usize]) -> Option<&FileSystemEntry> {
        fn find_entry<'a>(
            nodes: &'a [TreeNode<FileSystemEntry>],
            path: &[usize],
        ) -> Option<&'a FileSystemEntry> {
            if path.is_empty() {
                return None;
            }

            if let Some(node) = nodes.get(path[0]) {
                if path.len() == 1 {
                    return Some(&node.data);
                }
                return find_entry(&node.children, &path[1..]);
            }
            None
        }

        find_entry(&self.nodes, path)
    }
}