Struct RocFS

Source
pub struct RocFS {
    pub layers: Vec<Box<dyn FileSystem>>,
}
Expand description

“Read-only collection” filesystem. Does not support writing, but supports reading from any of the layers. Differs from OverlayFS in that it only supports reading and is much less complex and doesn’t need to write a .whiteout directory that can sometimes prove problematic.

Fields§

§layers: Vec<Box<dyn FileSystem>>

Implementations§

Source§

impl RocFS

Source

pub fn new(layers: Vec<Box<dyn FileSystem>>) -> Self

Creates a new read-only collection filesystem from layers. Layers will be traversed in order of their appearance in the vector.

§Argument

layers: The layers of the filesystem.

Trait Implementations§

Source§

impl FileSystem for RocFS

Source§

fn create_dir(&self, _path: &str) -> Result<()>

Creates a directory at path.
Source§

fn metadata(&self, path: &str) -> Result<Metadata>

Returns the metadata for the file/folder at `path.
Source§

fn open_file_options( &self, path: &str, options: &OpenOptions, ) -> Result<Box<dyn File>>

Opens a file at path with options options.
Source§

fn read_dir( &self, path: &str, ) -> Result<Box<dyn Iterator<Item = Result<DirEntry>>>>

Lists the files and folders contained in the directory denoted by path.
Source§

fn remove_dir(&self, _path: &str) -> Result<()>

Removes the directory at path.
Source§

fn remove_file(&self, _path: &str) -> Result<()>

Removes a file at path.
Source§

fn create_dir_all(&self, path: &str) -> Result<()>

Creates a directory path and all of its parents.
Source§

fn create_file(&self, path: &str) -> Result<Box<dyn File>>

Creates a file at path in write mode. The file will be opened in truncate mode, so all contents will be overwritten. If this is not desirable, use open_file directly.
Source§

fn exists(&self, path: &str) -> Result<bool>

Returns Ok(true) or Ok(false) if a file or folder at path does or does not exist, and Err(_) if the presence cannot be verified.
Source§

fn open_file(&self, path: &str) -> Result<Box<dyn File>>

Opens a file at path for reading.

Auto Trait Implementations§

§

impl Freeze for RocFS

§

impl !RefUnwindSafe for RocFS

§

impl !Send for RocFS

§

impl !Sync for RocFS

§

impl Unpin for RocFS

§

impl !UnwindSafe for RocFS

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.