Skip to main content

Live

Struct Live 

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

Manages a live-updating region of the terminal.

Implementations§

Source§

impl Live

Source

pub fn new(renderable: impl Renderable + Send + Sync + 'static) -> Self

Create a new Live display wrapping the given Renderable.

Source

pub fn screen(self) -> Self

Builder: use the alternate screen buffer for full-screen display.

Source

pub fn no_auto_refresh(self) -> Self

Builder: disable automatic periodic refresh.

Source

pub fn refresh_per_second(self, rate: f64) -> Self

Builder: set the refresh rate in Hz (default 4.0).

Source

pub fn transient(self) -> Self

Builder: enable transient mode (live display disappears on stop).

Source

pub fn redirect_stdout(self, redirect: bool) -> Self

Builder: redirect stdout writes into the live display.

Source

pub fn redirect_stderr(self, redirect: bool) -> Self

Builder: redirect stderr writes into the live display.

Source

pub fn add_writer(&mut self, writer: LiveWriter)

Register a writer whose captured content will be rendered during refresh.

Source

pub fn create_writer() -> LiveWriter

Create a LiveWriter that captures output while Live is active.

Source

pub fn start(&mut self) -> Result<()>

Start the live display: enter alternate screen (if configured) and hide cursor.

Source

pub fn stop(&mut self) -> Result<()>

Stop the live display: restore cursor, exit alternate screen, and clean up.

Source

pub fn update( &mut self, renderable: impl Renderable + Send + Sync + 'static, ) -> Result<()>

Replace the displayed content and refresh immediately.

Source

pub fn refresh(&mut self) -> Result<()>

Re-render the current content in place (cursor is moved back to overwrite previous output).

If any RenderHooks are registered, they are applied to the rendered segment lines before the output is written to the terminal.

Source

pub fn is_started(&self) -> bool

Check if the live display is currently running.

Source

pub fn get_renderable(&self) -> &dyn Renderable

Get a reference to the current renderable.

§Panics

Panics if no renderable has been set (this should not happen with normal usage, as Live::new always creates one).

Source

pub fn renderable(&self) -> &dyn Renderable

Get the current renderable being displayed.

§Panics

Panics if no renderable has been set (this should not happen with normal usage, as Live::new always creates one).

Source

pub fn process_renderables( &self, renderables: &[Box<dyn Renderable>], options: &ConsoleOptions, ) -> Vec<Vec<Segment>>

Process multiple renderables through the Live display pipeline.

Each renderable is rendered with the given options, and the resulting segment lines are collected into a single vector.

Source

pub fn add_render_hook(&mut self, hook: RenderHook)

Add a render hook to the live display.

Hooks are applied in registration order during each refresh, allowing transformation of the rendered segment lines before they are output.

Trait Implementations§

Source§

impl Debug for Live

Source§

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

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

impl Drop for Live

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Live

§

impl !Sync for Live

§

impl !UnwindSafe for Live

§

impl Freeze for Live

§

impl Send for Live

§

impl Unpin for Live

§

impl UnsafeUnpin for Live

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
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, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.