use std::path::{Path, PathBuf}; use rbx_dom_weak::{RbxId, RbxTree}; use crate::{ imfs::{ new::{Imfs, ImfsEntry, ImfsFetcher, ImfsSnapshot}, FsResult, }, snapshot::InstanceSnapshot, }; pub type SnapshotInstanceResult<'a> = FsResult>>; pub type SnapshotFileResult = Option<(String, ImfsSnapshot)>; pub trait SnapshotMiddleware { fn from_imfs( imfs: &mut Imfs, entry: &ImfsEntry, ) -> SnapshotInstanceResult<'static>; fn from_instance(tree: &RbxTree, id: RbxId) -> SnapshotFileResult; fn change_affects_paths(path: &Path) -> Vec { vec![path.to_path_buf()] } }