[][src]Trait artichoke_backend::core::LoadSources

pub trait LoadSources {
    type Artichoke;
    type Error;
    type Exception;
    pub fn def_file_for_type<P, T>(
        &mut self,
        path: P
    ) -> Result<(), Self::Error>
    where
        P: AsRef<Path>,
        T: File<Artichoke = Self::Artichoke, Error = Self::Exception>
;
pub fn def_rb_source_file<P, T>(
        &mut self,
        path: P,
        contents: T
    ) -> Result<(), Self::Error>
    where
        P: AsRef<Path>,
        T: Into<Cow<'static, [u8]>>
;
pub fn source_is_file<P>(&self, path: P) -> Result<bool, Self::Error>
    where
        P: AsRef<Path>
;
pub fn load_source<P>(&mut self, path: P) -> Result<bool, Self::Error>
    where
        P: AsRef<Path>
;
pub fn require_source<P>(&mut self, path: P) -> Result<bool, Self::Error>
    where
        P: AsRef<Path>
;
pub fn read_source_file_contents<P>(
        &self,
        path: P
    ) -> Result<Cow<'_, [u8]>, Self::Error>
    where
        P: AsRef<Path>
; }

Load Ruby sources and Rust extensions into an interpreter.

Associated Types

type Artichoke[src]

Concrete type for interpreter.

type Error[src]

Concrete type for errors returned from filesystem IO.

type Exception[src]

Concrete type for errors returned by File::require.

Loading content...

Required methods

pub fn def_file_for_type<P, T>(&mut self, path: P) -> Result<(), Self::Error> where
    P: AsRef<Path>,
    T: File<Artichoke = Self::Artichoke, Error = Self::Exception>, 
[src]

Add a Rust extension hook to the virtual filesystem. A stub Ruby file is added to the filesystem and File::require will dynamically define Ruby items when invoked via Kernel#require.

If path is a relative path, the Ruby source is added to the filesystem relative to RUBY_LOAD_PATH. If the path is absolute, the file is placed directly on the filesystem. Anscestor directories are created automatically.

Errors

If the underlying filesystem is inaccessible, an error is returned.

If writes to the underlying filesystem fail, an error is returned.

pub fn def_rb_source_file<P, T>(
    &mut self,
    path: P,
    contents: T
) -> Result<(), Self::Error> where
    P: AsRef<Path>,
    T: Into<Cow<'static, [u8]>>, 
[src]

Add a Ruby source to the virtual filesystem.

If path is a relative path, the Ruby source is added to the filesystem relative to RUBY_LOAD_PATH. If the path is absolute, the file is placed directly on the filesystem. Anscestor directories are created automatically.

Errors

If the underlying filesystem is inaccessible, an error is returned.

If writes to the underlying filesystem fail, an error is returned.

pub fn source_is_file<P>(&self, path: P) -> Result<bool, Self::Error> where
    P: AsRef<Path>, 
[src]

Test for a source file at a path.

Query the underlying virtual filesystem to check if path points to a source file.

This function returns false if path does not exist in the virtual filesystem.

Errors

If the underlying filesystem is inaccessible, an error is returned.

pub fn load_source<P>(&mut self, path: P) -> Result<bool, Self::Error> where
    P: AsRef<Path>, 
[src]

Load source located at the given path.

Query the underlying virtual filesystem for a source file and load it onto the interpreter. This loads files with the following steps:

  1. Retrieve and execute the extension hook, if any.
  2. Read file contents and eval them.

If this function returns without error, the feature specified by path is loaded, but is not added to $LOADED_FEATURES. This function is equivalent to Kernel#load.

Errors

If the underlying filesystem is inaccessible, an error is returned.

If reads to the underlying filesystem fail, an error is returned.

If path does not point to a source file, an error is returned.

If the souce file at path has no contents, an error is returned.

pub fn require_source<P>(&mut self, path: P) -> Result<bool, Self::Error> where
    P: AsRef<Path>, 
[src]

Require source located at the given path.

Query the underlying virtual filesystem for a source file and require it onto the interpreter. This requires files with the following steps:

  1. Retrieve and execute the extension hook, if any.
  2. Read file contents and eval them.
  3. Mark file as required and add to $LOADED_FEATURES.

If this function returns without error, the feature specified by path is loaded and added to $LOADED_FEATURES. This function is equivalent to Kernel#require.

Errors

If the underlying filesystem is inaccessible, an error is returned.

If reads to the underlying filesystem fail, an error is returned.

If path does not point to a source file, an error is returned.

If the souce file at path has no contents, an error is returned.

pub fn read_source_file_contents<P>(
    &self,
    path: P
) -> Result<Cow<'_, [u8]>, Self::Error> where
    P: AsRef<Path>, 
[src]

Retrieve file contents for a source file.

Query the underlying virtual filesystem for the file contents of the source file at path.

Errors

If the underlying filesystem is inaccessible, an error is returned.

If reads to the underlying filesystem fail, an error is returned.

If path does not point to a source file, an error is returned.

Loading content...

Implementors

impl LoadSources for Artichoke[src]

type Artichoke = Self

type Error = Error

type Exception = Error

Loading content...