pub struct FixedWidth<E, T = ()> { /* private fields */ }Expand description
An element that pads or truncates its contents to a constant width.
Implementations§
Source§impl<'s, E: Element<'s>> FixedWidth<E, ()>
impl<'s, E: Element<'s>> FixedWidth<E, ()>
Sourcepub fn new(width: usize, content: E) -> Self
pub fn new(width: usize, content: E) -> Self
Creates a new FixedWidth with the specified width and content.
Source§impl<'s, E: Element<'s>, T: Element<'s>> FixedWidth<E, T>
impl<'s, E: Element<'s>, T: Element<'s>> FixedWidth<E, T>
Sourcepub fn truncated(self, truncate: Direction) -> Self
pub fn truncated(self, truncate: Direction) -> Self
Changes the side on which the content is truncated.
This option only takes effect if the content is wider than the width.
Examples found in repository?
examples/input.rs (line 26)
13fn main() -> std::io::Result<()> {
14 let stdout = std::io::stdout().into_raw_mode()?;
15 let mut r = Renderer::new(stdout);
16
17 let mut name = String::new();
18
19 let mut events = std::io::stdin().events();
20 loop {
21 r.reset()?
22 .render((
23 "Enter your name: ".into_element(),
24 (name.into_element(), Cursor, Gap(1))
25 .fixed_width(20)
26 .truncated(Direction::Left)
27 .styled(Style::bg(240)),
28 ))?
29 .finish()?;
30
31 let Some(event) = events.next().transpose()? else {
32 break;
33 };
34 match event {
35 Event::Key(Key::Char(ch)) if !ch.is_ascii_control() => name.push(ch),
36 Event::Key(Key::Char('\n' | '\r')) => break,
37 Event::Key(Key::Backspace) => {
38 name.pop();
39 }
40 _ => {}
41 }
42 }
43
44 r.clear()?;
45 drop(r);
46 println!("Your name is {name:?}");
47 Ok(())
48}Sourcepub fn padded(self, pad: Direction) -> Self
pub fn padded(self, pad: Direction) -> Self
Changes the side on which padding is added.
This option only takes effect if the content is narrower than the width.
Sourcepub fn truncated_with<U: Element<'s>>(self, truncation: U) -> FixedWidth<E, U>
pub fn truncated_with<U: Element<'s>>(self, truncation: U) -> FixedWidth<E, U>
Changes the element displayed when truncation occurs.
This option only takes effect if the content is wider than the width.
When this happens, this element is displayed on the side that is
truncated. This element’s width must not exceed the width of the
FixedWidth.
Trait Implementations§
Source§impl<E: Clone, T: Clone> Clone for FixedWidth<E, T>
impl<E: Clone, T: Clone> Clone for FixedWidth<E, T>
Source§fn clone(&self) -> FixedWidth<E, T>
fn clone(&self) -> FixedWidth<E, T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<E, T> Freeze for FixedWidth<E, T>
impl<E, T> RefUnwindSafe for FixedWidth<E, T>where
E: RefUnwindSafe,
T: RefUnwindSafe,
impl<E, T> Send for FixedWidth<E, T>
impl<E, T> Sync for FixedWidth<E, T>
impl<E, T> Unpin for FixedWidth<E, T>
impl<E, T> UnwindSafe for FixedWidth<E, T>where
E: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<'s, E> IntoElement<'s> for Ewhere
E: Element<'s>,
impl<'s, E> IntoElement<'s> for Ewhere
E: Element<'s>,
Source§type ElementType = E
type ElementType = E
The element type to be converted into.
Source§fn into_element(self) -> <E as IntoElement<'s>>::ElementType
fn into_element(self) -> <E as IntoElement<'s>>::ElementType
Converts this type into an
Element.Source§fn fixed_width(self, width: usize) -> FixedWidth<Self::ElementType>
fn fixed_width(self, width: usize) -> FixedWidth<Self::ElementType>
Convenience function to wrap this element in a
FixedWidth.Source§fn styled(self, style: Style) -> Styled<Self::ElementType>
fn styled(self, style: Style) -> Styled<Self::ElementType>
Convenience function to wrap this element in a
Styled.Source§fn boxed(self) -> BoxElement<'s>
fn boxed(self) -> BoxElement<'s>
Convenience function to box this element.