pub struct Live { /* private fields */ }Expand description
Manages a live-updating region of the terminal.
Implementations§
Source§impl Live
impl Live
Sourcepub fn new(renderable: impl Renderable + Send + Sync + 'static) -> Self
pub fn new(renderable: impl Renderable + Send + Sync + 'static) -> Self
Create a new Live display wrapping the given Renderable.
Sourcepub fn no_auto_refresh(self) -> Self
pub fn no_auto_refresh(self) -> Self
Builder: disable automatic periodic refresh.
Sourcepub fn refresh_per_second(self, rate: f64) -> Self
pub fn refresh_per_second(self, rate: f64) -> Self
Builder: set the refresh rate in Hz (default 4.0).
Sourcepub fn transient(self) -> Self
pub fn transient(self) -> Self
Builder: enable transient mode (live display disappears on stop).
Sourcepub fn redirect_stdout(self, redirect: bool) -> Self
pub fn redirect_stdout(self, redirect: bool) -> Self
Builder: redirect stdout writes into the live display.
Sourcepub fn redirect_stderr(self, redirect: bool) -> Self
pub fn redirect_stderr(self, redirect: bool) -> Self
Builder: redirect stderr writes into the live display.
Sourcepub fn add_writer(&mut self, writer: LiveWriter)
pub fn add_writer(&mut self, writer: LiveWriter)
Register a writer whose captured content will be rendered during refresh.
Sourcepub fn create_writer() -> LiveWriter ⓘ
pub fn create_writer() -> LiveWriter ⓘ
Create a LiveWriter that captures output while Live is active.
Sourcepub fn start(&mut self) -> Result<()>
pub fn start(&mut self) -> Result<()>
Start the live display: enter alternate screen (if configured) and hide cursor.
Sourcepub fn stop(&mut self) -> Result<()>
pub fn stop(&mut self) -> Result<()>
Stop the live display: restore cursor, exit alternate screen, and clean up.
Sourcepub fn update(
&mut self,
renderable: impl Renderable + Send + Sync + 'static,
) -> Result<()>
pub fn update( &mut self, renderable: impl Renderable + Send + Sync + 'static, ) -> Result<()>
Replace the displayed content and refresh immediately.
Sourcepub fn refresh(&mut self) -> Result<()>
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.
Sourcepub fn is_started(&self) -> bool
pub fn is_started(&self) -> bool
Check if the live display is currently running.
Sourcepub fn get_renderable(&self) -> &dyn Renderable
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).
Sourcepub fn renderable(&self) -> &dyn Renderable
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).
Sourcepub fn process_renderables(
&self,
renderables: &[Box<dyn Renderable>],
options: &ConsoleOptions,
) -> Vec<Vec<Segment>>
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.
Sourcepub fn add_render_hook(&mut self, hook: RenderHook)
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§
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 Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
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) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more