Struct Shell

Source
pub struct Shell {
    pub builtins: Builtins,
    pub lang: Box<dyn Lang>,
    pub keybindings: Keybindings,
    pub hooks: Hooks,
    pub prompt: Prompt,
    pub highlighter: Box<dyn Highlighter>,
    pub suggester: Box<dyn Suggester>,
    pub history: Box<dyn History>,
    /* private fields */
}
Expand description

Container for shell components

This struct can be queried for in any handler (insert link), allowing for easy access to shell components.

Fields§

§builtins: Builtins

Builtin shell functions that have access to the shell’s context

§lang: Box<dyn Lang>

The command language

§keybindings: Keybindings

Shell keybindings

§hooks: Hooks

Register new hooks to events or emit an event

§prompt: Prompt

Shell prompt

§highlighter: Box<dyn Highlighter>

Syntax highlighter

§suggester: Box<dyn Suggester>

Active command suggestion

§history: Box<dyn History>

Command history

Implementations§

Source§

impl Shell

Source

pub fn run_cmd<C: Command + 'static>(&self, command: C)

Run an arbitrary shell Command

Source

pub fn run_hooks<C: HookEventMarker>(&self, c: C)

Trigger an event of given type with payload.

See crate::hooks for details.

Source

pub fn eval(&self, cmd_str: impl ToString)

Evaluate an arbitrary command programatically using the shell interpreter

The command will be evaluated as if the user has typed this string in the prompt themselves.

Trait Implementations§

Source§

impl<'res> Param for &'res Shell

Source§

type Item<'new> = &'new Shell

Source§

fn retrieve<'r>(shell: &'r Shell, _states: &'r States) -> Result<Self::Item<'r>>

Auto Trait Implementations§

§

impl !Freeze for Shell

§

impl !RefUnwindSafe for Shell

§

impl !Send for Shell

§

impl !Sync for Shell

§

impl Unpin for Shell

§

impl !UnwindSafe for Shell

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> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

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

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.