use crate::node::Node; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] pub struct DirectoryBuffer { pub parent: String, pub nodes: Vec, pub total: usize, pub focus: usize, #[serde(skip)] pub explored_at: DateTime, } impl DirectoryBuffer { pub fn new(parent: String, nodes: Vec, focus: usize) -> Self { let total = nodes.len(); Self { parent, nodes, total, focus, explored_at: Utc::now(), } } pub fn focused_node(&self) -> Option<&Node> { self.nodes.get(self.focus) } }