Skip to main content

Files

Struct Files 

Source
pub struct Files { /* private fields */ }
Expand description

files: reading, writing, listing, and removing files under one root.

Implementations§

Source§

impl Files

Source

pub fn rooted(root: PathBuf) -> Self

The real filesystem, reachable only inside root.

The root is the host’s choice, never the program’s: no path a program writes can name a place outside it, so granting files grants exactly this directory.

root need not exist yet. Until it does, every read answers that the path is not there; the first write creates it, along with any directories the written path names below it, so a program does not have to know whether the host prepared the tree.

Source

pub fn in_memory(files: BTreeMap<String, String>) -> Self

A fake filesystem that lives only in this process, for tests.

Each key is a /-separated relative path, exactly as a program would write it, and its value is the file’s contents. A path with no key of its own but with keys below it is a directory.

Source

pub fn tree(&self) -> Tree

The fake tree as this host holds it, for a test to read back.

A test drives the program and then asks this what the run left behind, which is the only way to assert on a file the program wrote rather than on the console line that says it did. A rooted host answers an empty tree: what a run wrote is on the filesystem, under the root the test chose, where the test can go and read it.

Trait Implementations§

Source§

impl HostApi for Files

Source§

fn module_schema(&self) -> ModuleSchema

The whole of what this module declares about itself: the name Cove source uses, the capability a host must grant for it, the operations it exposes, the types it declares, and the kinds of resource it can open. Read more
Source§

fn call(&self, op: &str, args: Vec<Value>) -> Result<Value, RuntimeError>

Invokes one operation.
Source§

fn call_resource( &self, handle: &ResourceHandle, op: &str, args: Vec<Value>, _back: &mut dyn Reentry, ) -> Result<Value, RuntimeError>

Invokes one operation on a handle this module issued. Read more
Source§

fn call_with( &self, op: &str, args: Vec<Value>, back: &mut dyn Reentry, ) -> Result<Value, RuntimeError>

Invokes one operation. Read more

Auto Trait Implementations§

§

impl !Freeze for Files

§

impl RefUnwindSafe for Files

§

impl Send for Files

§

impl Sync for Files

§

impl Unpin for Files

§

impl UnsafeUnpin for Files

§

impl UnwindSafe for Files

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> 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, 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.