use git_hash::ObjectId; use git_object::immutable; use std::collections::VecDeque; #[derive(Default, Clone)] pub struct State { buf1: Vec, buf2: Vec, trees: VecDeque>, } type TreeInfoPair = (Option>, Option>); #[derive(Clone)] pub(crate) struct TreeInfo { pub tree_id: ObjectId, pub parent_path_id: PathId, } impl State

{ pub fn clear(&mut self) { self.trees.clear(); self.buf1.clear(); self.buf2.clear(); } } pub struct Changes<'a>(Option>); impl<'a, T> From for Changes<'a> where T: Into>>, { fn from(v: T) -> Self { Changes(v.into()) } } mod changes; pub mod record; pub use record::Record; pub mod recorder; pub use recorder::Recorder;