Skip to main content

Console

Struct Console 

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

The console / shell component.

Implementations§

Source§

impl Console

Source

pub fn new(title: impl Into<String>) -> Self

Source

pub fn with_prompt(self, p: impl Into<String>) -> Self

Source

pub fn with_cursor(self, c: Cursor) -> Self

Source

pub fn with_max_lines(self, n: usize) -> Self

Cap the scrollback ring (oldest lines dropped past this).

Source

pub fn state(&self) -> &ConsoleModel

FC-3 — read the complete observable state at any frame boundary.

Source

pub fn update(&mut self, msg: Msg) -> Vec<Effect>

FC-2 / FC-8 — the single mutation path. Apply one Msg; return the Effects the host should run (empty unless a command was submitted). Every gesture and every host push routes here, so live == headless.

Source

pub fn push_line(&mut self, raw: impl AsRef<str>)

Append a raw line (ANSI-parsed), dropping the oldest past max_lines.

Source

pub fn set_input(&mut self, s: impl Into<String>)

Replace the in-progress input line.

Source

pub fn select(&mut self, id: Option<LineId>)

Select a scrollback line by stable id (or clear). A thin wrapper over the FC-2 mutation path.

Source

pub fn advance(&mut self, dt: f32)

Advance the scrollback animation (the injected clock; deterministic).

Source

pub fn line_count(&self) -> usize

Source

pub fn is_idle(&self) -> bool

Whether the console is idle (FC-8). The console is host-pushed and synchronous — lines arrive via push_line and there is no internal async work — so it is always idle from the component’s own perspective. (A submitted command’s execution is the host’s RunCommand effect, not the console’s own work.)

Source

pub fn plain_text(&self) -> String

The plain-text scrollback (for copy/search).

Source§

impl Console

Source

pub fn view(&self, ui: &mut Ui) -> Vec<Msg>

FC-9 render — a pure function of &self: it paints the scrollback + the prompt/cursor and returns the Msgs the gestures produced (typing, backspace, submit, history, scroll, per-line select). It MUST NOT mutate the ConsoleModel; the impl_facet_via_elm! bridge applies the returned messages through update.

The only &self-external effects are egui-side, not model writes: it may request_focus/request_repaint. The layout-derived scroll extent is returned as a Msg::SetScrollMax (applied next frame) rather than written here — that is the deliberate one-frame trail noted on the crate.

Trait Implementations§

Source§

impl Clone for Console

Source§

fn clone(&self) -> Console

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 CopySource for Console

Source§

fn copy_kinds(&self) -> &[ClipKind]

The kinds this source can offer, richest first.
Source§

fn copy_payload(&self) -> Option<ClipPayload>

Produce the payload for the current selection (richest representation).
Source§

impl Debug for Console

Source§

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

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

impl Elm for Console

Source§

type Model = ConsoleModel

All observable state, in one serializable struct (FC-1 / FC-3).
Source§

type Msg = Msg

Every input the component accepts (FC-2). The only legal way to mutate the Model.
Source§

type Effect = Effect

Side work as data (FC-8). Use enum Effect {} when the component does no I/O.
Source§

fn title(&self) -> &str

The deck keys facets off this (mirrors Facet::title).
Source§

fn state(&self) -> &ConsoleModel

FC-3 — read the complete observable state at any frame boundary.
Source§

fn update(&mut self, msg: Msg) -> Vec<Effect>

FC-2 / FC-8 — the single mutation path. Apply one Msg; return the Effects the host should run (empty = nothing to do).
Source§

fn view(&self, ui: &mut Ui) -> Vec<Msg>

FC-9 / FC-4 — a pure function of &self: it paints and returns the Msgs it produced. It MUST NOT mutate the model or do I/O; the Facet::ui bridge applies the returned messages through update.
Source§

impl Facet for Console

Source§

fn ui(&mut self, ui: &mut Ui)

FC-9: the view is pure (paints + emits Msgs); FC-2: mutation only via update. The immediate-mode trait just bridges the two.

Source§

fn title(&self) -> &str

Source§

fn state_json(&self) -> Value

Source§

fn selection_json(&self) -> Value

The current selection as JSON (also folded into state_json by convention). Null when nothing/none selectable.
Source§

fn caps(&self) -> FacetCaps

What this facet can do. Override to opt into capabilities.
Source§

fn scale(&self) -> f32

Current uniform scale (1.0 = native). Override if caps().scalable.
Source§

fn set_scale(&mut self, scale: f32)

Set the uniform scale; clamp internally. Default no-op (not scalable).
Source§

fn copy(&mut self) -> Option<String>

Clipboard hooks — see clipboard.rs. Defaults: nothing to give/take. Returns the text to place on the clipboard (None = nothing copyable now).
Source§

fn paste(&mut self, text: &str) -> bool

Accept pasted text. Returns true if consumed.
Source§

fn as_any_mut(&mut self) -> Option<&mut dyn Any>

Optional downcast handle for hosts that need typed access to a specific facet living inside a FacetDeck (e.g. a robot-UI driver clicking an app-level control that must forward to a concrete component’s own API). Defaulted to None so no existing facet has to change; a component opts in by returning Some(self).
Source§

fn cut(&mut self) -> Option<String>

Like copy, but also removes the selection. Default delegates to copy.
Source§

fn kind(&self) -> &'static str

Stable component-type id (e.g. "jobview", "graphpan", "table"). Two instances with the same kind can exchange portable state; the empty default "" means opted out of cross-instance clone.
Source§

fn portable_state(&self) -> Option<Value>

The portable subset of this facet’s state — the fields a same-kind sibling can adopt. None = not cloneable. Kept SEPARATE from state_json (the introspection dump, which may carry derived / render-only data) so this stays round-trippable through load_state.
Source§

fn load_state(&mut self, _state: &Value) -> bool

Adopt a portable state produced by portable_state on a same-kind sibling. Returns true if accepted. Default false (opt-in per component).
Source§

impl PasteTarget for Console

Source§

fn accepts(&self, k: ClipKind) -> bool

Does this target accept kind k?
Source§

fn paste_payload(&mut self, p: &ClipPayload)

Apply the payload. Text is the universal fallback (CLIP-3).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

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<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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(value: T, _simd: S) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

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 = 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.