[][src]Trait artichoke_backend::fs::Filesystem

pub trait Filesystem: Debug {
    fn is_file(&self, path: &Path) -> bool;
fn read_file(&self, path: &Path) -> Result<Cow<'_, [u8]>>;
fn write_file(&mut self, path: &Path, buf: Cow<'static, [u8]>) -> Result<()>;
fn get_extension(&self, path: &Path) -> Option<ExtensionHook>;
fn register_extension(
        &mut self,
        path: &Path,
        extension: ExtensionHook
    ) -> Result<()>;
fn is_required(&self, path: &Path) -> bool;
fn mark_required(&mut self, path: &Path) -> Result<()>; }

Filesystem APIs required by an Artichoke interpreter.

Required methods

fn is_file(&self, path: &Path) -> bool[src]

Check whether path points to a file in the virtual filesystem.

This API is infallible and will return false for non-existent paths.

fn read_file(&self, path: &Path) -> Result<Cow<'_, [u8]>>[src]

Read file contents for the file at path.

Returns a byte slice of complete file contents. If path is relative, it is absolutized relative to the current working directory of the virtual file system.

Errors

If path does not exist, an io::Error with error kind io::ErrorKind::NotFound is returned.

fn write_file(&mut self, path: &Path, buf: Cow<'static, [u8]>) -> Result<()>[src]

Write file contents into the virtual file system at path.

Writes the full file contents. If any file contents already exist at path, they are replaced. Extension hooks are preserved.

Errors

This API is currently infallible but returns io::Result to reserve the ability to return errors in the future.

fn get_extension(&self, path: &Path) -> Option<ExtensionHook>[src]

Retrieve an extension hook for the file at path.

This API is infallible and will return None for non-existent paths.

fn register_extension(
    &mut self,
    path: &Path,
    extension: ExtensionHook
) -> Result<()>
[src]

Write extension hook into the virtual file system at path.

If any extension hooks already exist at path, they are replaced. File contents are preserved.

Errors

This API is currently infallible but returns io::Result to reserve the ability to return errors in the future.

fn is_required(&self, path: &Path) -> bool[src]

Check whether a file at path has been required already.

This API is infallible and will return false for non-existent paths.

fn mark_required(&mut self, path: &Path) -> Result<()>[src]

Mark a source at path as required on the interpreter.

This metadata is used by Kernel#require and friends to enforce that Ruby sources are only loaded into the interpreter once to limit side effects.

Errors

If path does not exist, an io::Error with error kind io::ErrorKind::NotFound is returned.

Loading content...

Implementors

impl Filesystem for Hybrid[src]

impl Filesystem for Memory[src]

fn is_file(&self, path: &Path) -> bool[src]

Check whether path points to a file in the virtual filesystem.

This API is infallible and will return false for non-existent paths.

fn read_file(&self, path: &Path) -> Result<Cow<'_, [u8]>>[src]

Read file contents for the file at path.

Returns a byte slice of complete file contents. If path is relative, it is absolutized relative to the current working directory of the virtual file system.

Errors

If path does not exist, an io::Error with error kind io::ErrorKind::NotFound is returned.

fn write_file(&mut self, path: &Path, buf: Cow<'static, [u8]>) -> Result<()>[src]

Write file contents into the virtual file system at path.

Writes the full file contents. If any file contents already exist at path, they are replaced. Extension hooks are preserved.

Errors

This API is currently infallible but returns io::Result to reserve the ability to return errors in the future.

fn get_extension(&self, path: &Path) -> Option<ExtensionHook>[src]

Retrieve an extension hook for the file at path.

This API is infallible and will return None for non-existent paths.

fn register_extension(
    &mut self,
    path: &Path,
    extension: ExtensionHook
) -> Result<()>
[src]

Write extension hook into the virtual file system at path.

If any extension hooks already exist at path, they are replaced. File contents are preserved.

Errors

This API is currently infallible but returns io::Result to reserve the ability to return errors in the future.

fn is_required(&self, path: &Path) -> bool[src]

Check whether a file at path has been required already.

This API is infallible and will return false for non-existent paths.

fn mark_required(&mut self, path: &Path) -> Result<()>[src]

Mark a source at path as required on the interpreter.

This metadata is used by Kernel#require and friends to enforce that Ruby sources are only loaded into the interpreter once to limit side effects.

Errors

If path does not exist, an io::Error with error kind io::ErrorKind::NotFound is returned.

impl Filesystem for Native[src]

Loading content...