Skip to main content

Documents

Struct Documents 

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

documents: a filtered, read-only view over a fixed set of named text documents.

Granting documents never grants filesystem access. A host names exactly which documents exist; there is no way to reach a path this module was not built to expose, so a grant of documents is narrow authority, never ambient access to a directory.

Implementations§

Source§

impl Documents

Source

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

A fake implementation backed by an in-memory map, for tests.

Source

pub fn rooted(root: PathBuf) -> Self

Reads <root>/<name>.txt for a document named name.

name must be a single plain path component: empty names, ., .., and names containing /, \, or a NUL byte are all rejected before the filesystem is touched. This keeps the capability narrow: a grant of documents can only ever reach the fixed set of .txt files under root, never an arbitrary path via traversal or an absolute path.

Trait Implementations§

Source§

impl HostApi for Documents

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_with( &self, op: &str, args: Vec<Value>, back: &mut dyn Reentry, ) -> Result<Value, RuntimeError>

Invokes one operation. Read more
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

Auto Trait Implementations§

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.