Skip to main content

MemSource

Struct MemSource 

Source
pub struct MemSource {
    pub caps: SourceCapabilities,
    pub files: BTreeMap<String, String>,
    pub log: Vec<(&'static str, String, String)>,
    /* private fields */
}
Expand description

An in-memory source for tests: a path → content map with a configurable capability set; writes and removes are applied to the map and logged.

Fields§

§caps: SourceCapabilities§files: BTreeMap<String, String>§log: Vec<(&'static str, String, String)>

("write", path, content) / ("remove", path, "") in call order.

Implementations§

Source§

impl MemSource

Source

pub fn new(caps: SourceCapabilities) -> Self

Source

pub fn with_files(files: &[(&str, &str)]) -> Self

A source with path → content files and every capability.

Source

pub fn set(&mut self, path: &str, content: &str)

Set a file from “outside” (as if the human edited it).

Source

pub fn emit(&self, paths: &[&str])

Emit a watch batch (a no-op when nothing watches).

Trait Implementations§

Source§

impl Debug for MemSource

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MemSource

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl SyncSource for MemSource

Source§

fn capabilities(&self) -> SourceCapabilities

Source§

fn enumerate(&mut self) -> Result<Vec<SourceEntry>>

The full current scope.
Source§

fn fetch(&mut self, path: &str) -> Result<Option<SourceItem>>

One member’s current state, or None when it left the scope.
Source§

fn write(&mut self, path: &str, content: &str) -> Result<()>

Persist engine-authored bytes (write-through sources only).
Source§

fn remove(&mut self, path: &str) -> Result<()>

Remove a member (write-through sources only).
Source§

fn watch(&mut self) -> Result<Receiver<Vec<String>>>

Subscribe to change batches: each received value is one batch of changed paths (watching sources only).
Source§

fn unwatch(&mut self) -> Result<()>

Stop the batches.
Source§

fn close(&mut self) -> Result<()>

Release the process / resources.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.