[−][src]Trait artichoke_backend::fs::Filesystem
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]
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>
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.
Implementors
impl Filesystem for Hybrid
[src]
fn is_file(&self, path: &Path) -> bool
[src]
fn read_file(&self, path: &Path) -> Result<Cow<'_, [u8]>>
[src]
fn write_file(&mut self, path: &Path, buf: Cow<'static, [u8]>) -> Result<()>
[src]
fn get_extension(&self, path: &Path) -> Option<ExtensionHook>
[src]
fn register_extension(
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>
[src]
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>
fn is_required(&self, path: &Path) -> bool
[src]
fn mark_required(&mut self, path: &Path) -> Result<()>
[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]
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>
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]
fn is_file(&self, path: &Path) -> bool
[src]
fn read_file(&self, path: &Path) -> Result<Cow<'_, [u8]>>
[src]
fn write_file(&mut self, path: &Path, buf: Cow<'static, [u8]>) -> Result<()>
[src]
fn get_extension(&self, path: &Path) -> Option<ExtensionHook>
[src]
fn register_extension(
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>
[src]
&mut self,
path: &Path,
extension: ExtensionHook
) -> Result<()>