Skip to main content

Workspace

Struct Workspace 

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

The folder the actions are confined to.

Implementations§

Source§

impl Workspace

Source

pub fn new(root: &Path) -> Result<Self>

The folder the actions are confined to; it is canonicalized, so links are resolved once.

§Errors

When the folder does not exist, cannot be resolved or is not a folder.

Source

pub fn root(&self) -> &Path

The canonical workspace folder.

Source

pub fn preview(&self, action: &Action) -> Result<Preview, String>

What an action would do, for the approval card. Nothing changes on disk.

§Errors

When the action cannot be done as asked (a path outside the workspace, an edit whose text does not match exactly once); the sentence is the one Self::perform would give.

Source

pub fn perform(&self, action: &Action, cancelled: &dyn Fn() -> bool) -> Outcome

Does the action. It never panics: every failure becomes an Outcome with is_error set and a sentence the model can act on. cancelled is asked about every 50 ms while a command runs, and between the files a search reads; when it answers true the command or the search is stopped.

Source

pub fn perform_as_shown( &self, action: &Action, shown: Option<&Preview>, cancelled: &dyn Fn() -> bool, ) -> Outcome

Does the action the person allowed on a card that showed shown. An edit whose file changed since the card was drawn, so that what would be written is no longer what the person saw, is not done: the model is told to read the file again.

Source

pub fn perform_watching( &self, action: &Action, shown: Option<&Preview>, cancelled: &dyn Fn() -> bool, on_tail: &mut dyn FnMut(&str), ) -> Outcome

perform_as_shown, handing the end of a command’s output to on_tail while it runs, at most every tenth of a second, so the person sees it go by.

Trait Implementations§

Source§

impl Clone for Workspace

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Workspace

Source§

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

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

impl Eq for Workspace

Source§

impl PartialEq for Workspace

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Workspace

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.