Skip to main content

ConsoleState

Struct ConsoleState 

Source
pub struct ConsoleState {
    pub input: Editor,
    pub pending: String,
    pub scrollback: Vec<String>,
    pub history: Vec<String>,
    pub history_cursor: Option<usize>,
}
Expand description

Pure state for the Console tab.

Fields§

§input: Editor

The single-line input editor for the current line.

§pending: String

Lines of an in-progress multi-line form, joined with \n once a balanced form is assembled. Empty when no form is pending.

§scrollback: Vec<String>

The rendered transcript (prompts, inputs, and eval results).

§history: Vec<String>

Previously submitted complete forms, oldest first.

§history_cursor: Option<usize>

Cursor into history for up/down navigation; None means the cursor sits below the newest entry (i.e. on a fresh line).

Implementations§

Source§

impl ConsoleState

Source

pub fn new() -> Self

The console input is always an Emacs-style line editor, regardless of the app’s edit mode. The REPL has no vim-normal routing or two-stage Esc, so building it in Vim mode (reachable at runtime via Ctrl-V) would strand it in an unhandled normal mode where motion keys insert literally; pinning Emacs keeps the input always usable.

Source

pub fn take_complete_form(&mut self) -> Option<String>

Consume the current input line. If, together with any pending lines, it forms a balanced nomiscript form, return that complete form string, clear the buffers, and record it in history. An unbalanced (incomplete) form is appended to pending and None is returned, so the caller keeps collecting lines. A blank / whitespace-only candidate yields None without echoing or recording history (a bare Enter must not submit an empty form).

Source

pub fn history_prev(&mut self)

Move the history cursor toward older entries, loading the entry at the new cursor into the input editor. A no-op on empty history; once the cursor reaches the oldest entry it stays there.

Source

pub fn history_next(&mut self)

Move the history cursor toward newer entries, loading the entry into the input editor. Stepping past the newest entry clears the cursor and the input line (a fresh prompt).

Source

pub fn push_scrollback(&mut self, line: impl Into<String>)

Append a line to the scrollback, dropping the oldest lines once the retained count would exceed MAX_SCROLLBACK_LINES.

Trait Implementations§

Source§

impl Debug for ConsoleState

Source§

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

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

impl Default for ConsoleState

Source§

fn default() -> Self

Returns the “default value” for a type. 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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,