use crate::Result;
use crate::block::BlockDevice;
use crate::fs::archive::ArchiveFs;
pub struct CabFs(pub ArchiveFs);
impl CabFs {
pub fn open(_dev: &mut dyn BlockDevice) -> Result<Self> {
Ok(Self(ArchiveFs::scaffold("cab")))
}
pub fn format(_dev: &mut dyn BlockDevice, _opts: &()) -> Result<Self> {
Err(crate::Error::Unsupported(
"cab: creating archives is not supported".into(),
))
}
}
impl crate::fs::FilesystemFactory for CabFs {
type FormatOpts = ();
fn format(dev: &mut dyn BlockDevice, opts: &Self::FormatOpts) -> Result<Self> {
Self::format(dev, opts)
}
fn open(dev: &mut dyn BlockDevice) -> Result<Self> {
Self::open(dev)
}
}
crate::impl_archive_fs_filesystem!(CabFs);