Skip to main content

Log

Struct Log 

Source
pub struct Log<'a> { /* private fields */ }
Expand description

The tail of messages that fits in the area it’s rendered into, oldest at top, newest at the bottom, each line clipped to area.width() via PrintLine.

offset (set via Log::offset, default 0) scrolls back through history: 0 shows the most recent messages, and each increment moves the window one message further into the past. Like Table’s state.offset(), this does not clamp offset – scrolling back past the start of messages shows fewer (or zero) lines rather than wrapping or panicking, and it’s the caller’s responsibility to stop incrementing offset past messages.len() if that’s undesired. This is a different windowing direction than Table’s (anchored to the most recent entry and counting backward, rather than anchored to the start and counting forward), so it isn’t expressed as the same shared helper.

messages is a plain slice the caller owns and appends to (the same division of labor as ListState for selection): this widget only reads it. Rows beyond the available messages are left untouched – compose with fill_rect first for a solid background if one is wanted.

§Examples

use retroglyph_core::text::Line;
use retroglyph_core::{Headless, Rect, Terminal};
use retroglyph_widgets::{Log, Widget};

let messages = [Line::raw("connected"), Line::raw("joined #general")];
let mut term = Terminal::new(Headless::new(20, 2));
Log::new(&messages).render(Rect::new(0, 0, 20, 2), &mut term);

Implementations§

Source§

impl<'a> Log<'a>

Source

pub const fn new(messages: &'a [Line]) -> Self

A log tail over messages, starting at the most recent (offset 0).

Source

pub const fn offset(self, offset: usize) -> Self

Scroll back offset messages from the most recent.

Trait Implementations§

Source§

impl<'a> Clone for Log<'a>

Source§

fn clone(&self) -> Log<'a>

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<'a> Copy for Log<'a>

Source§

impl<'a> Debug for Log<'a>

Source§

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

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

impl<B: Backend> Widget<B> for Log<'_>

Source§

fn render(self, area: Rect, term: &mut Terminal<B>)

Draw this widget into area.

Auto Trait Implementations§

§

impl<'a> Freeze for Log<'a>

§

impl<'a> RefUnwindSafe for Log<'a>

§

impl<'a> Send for Log<'a>

§

impl<'a> Sync for Log<'a>

§

impl<'a> Unpin for Log<'a>

§

impl<'a> UnsafeUnpin for Log<'a>

§

impl<'a> UnwindSafe for Log<'a>

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> 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> 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.
Source§

impl<C> WithAlpha for C
where C: Copy,

Source§

fn with_alpha_first<A>(self, alpha: A) -> AlphaFirst<A, Self>

Wraps self with alpha, storing alpha before the color in memory (see AlphaFirst).
Source§

fn with_alpha_last<A>(self, alpha: A) -> AlphaLast<A, Self>

Wraps self with alpha, storing alpha after the color in memory (see AlphaLast).