pub struct Control { /* private fields */ }Expand description
A composable terminal control sequence.
A Control holds one or more ANSI escape sequences and can render them
as raw ANSI bytes or as a crate::segment::Segment with control codes.
This is the Rust equivalent of Python Rich’s Control class.
§Examples
use rusty_rich::control::{Control, control_home, control_clear};
// Named constructors
let home = control_home();
// Build combined controls
let clear_and_home = Control::new(&["\x1b[2J", "\x1b[H"]);
// Cursor positioning
let go_to = Control::cursor_to(10, 5);Implementations§
Source§impl Control
impl Control
Sourcepub fn new(sequences: &[&str]) -> Self
pub fn new(sequences: &[&str]) -> Self
Create a Control from a slice of raw ANSI escape sequences.
Sourcepub fn clear_home() -> Self
pub fn clear_home() -> Self
Clear screen and move cursor to home.
Sourcepub fn cursor_down(n: u16) -> Self
pub fn cursor_down(n: u16) -> Self
Move cursor down by n rows.
Sourcepub fn cursor_forward(n: u16) -> Self
pub fn cursor_forward(n: u16) -> Self
Move cursor forward by n columns.
Sourcepub fn cursor_back(n: u16) -> Self
pub fn cursor_back(n: u16) -> Self
Move cursor back by n columns.
Sourcepub fn cursor_to(row: u16, col: u16) -> Self
pub fn cursor_to(row: u16, col: u16) -> Self
Move cursor to an absolute position (1-based row, column).
Sourcepub fn cursor_to_row(row: u16) -> Self
pub fn cursor_to_row(row: u16) -> Self
Move cursor to a specific row (1-based).
Sourcepub fn cursor_to_column(col: u16) -> Self
pub fn cursor_to_column(col: u16) -> Self
Move cursor to a specific column (1-based).
Sourcepub fn alt_screen(enable: bool) -> Self
pub fn alt_screen(enable: bool) -> Self
Enable or disable the alternate screen buffer.
Sourcepub fn show_cursor(show: bool) -> Self
pub fn show_cursor(show: bool) -> Self
Show or hide the cursor.
Sourcepub fn erase_end_line() -> Self
pub fn erase_end_line() -> Self
Erase from cursor to end of line.
Sourcepub fn erase_start_line() -> Self
pub fn erase_start_line() -> Self
Erase from cursor to beginning of line.
Sourcepub fn erase_line() -> Self
pub fn erase_line() -> Self
Erase the entire current line.
Sourcepub fn erase_end_screen() -> Self
pub fn erase_end_screen() -> Self
Erase from cursor to end of screen.
Sourcepub fn erase_start_screen() -> Self
pub fn erase_start_screen() -> Self
Erase from cursor to beginning of screen.
Sourcepub fn insert_lines(n: u16) -> Self
pub fn insert_lines(n: u16) -> Self
Insert n blank lines at the cursor position.
Sourcepub fn delete_lines(n: u16) -> Self
pub fn delete_lines(n: u16) -> Self
Delete n lines at the cursor position.
Sourcepub fn carriage_return() -> Self
pub fn carriage_return() -> Self
Carriage return.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Control
impl RefUnwindSafe for Control
impl Send for Control
impl Sync for Control
impl Unpin for Control
impl UnsafeUnpin for Control
impl UnwindSafe for Control
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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