pub struct TerminalOptions {
pub caps: Option<TerminalCaps>,
pub capture_stderr: bool,
pub cursor_style: Option<CursorStyle>,
pub mouse: bool,
/* private fields */
}Expand description
Options controlling terminal entry.
Fields§
§caps: Option<TerminalCaps>Capabilities resolved for the controlling terminal.
None asks Terminal::enter to negotiate capabilities while using
the same decoder that the live input pump will own.
capture_stderr: boolWhether fd 2 is captured while the terminal owns the viewport.
Capturing is enabled by default. Disable it when stderr already targets an application-managed sink that must remain live during the TUI session.
cursor_style: Option<CursorStyle>Cursor shape to use while the application owns the terminal.
mouse: boolWhether inline mouse reporting is enabled for the whole session.
Off by default so the terminal’s native text selection keeps working; the alternate screen always enables reporting while it is active.
Implementations§
Source§impl TerminalOptions
impl TerminalOptions
Sourcepub fn new(caps: TerminalCaps) -> Self
pub fn new(caps: TerminalCaps) -> Self
Creates options for already-resolved terminal capabilities.
Examples found in repository?
53async fn main() -> io::Result<()> {
54 let caps = detect();
55 let charset = UiContext::default().with_terminal_caps(&caps).charset;
56 let mut terminal = Terminal::enter(TerminalOptions::new(caps).mouse(true))?;
57 let mut renderer = Renderer::new(TtyOut::new()?);
58 renderer.apply_caps(&caps)?;
59 match run(&mut terminal, &mut renderer, charset).await {
60 Ok(()) => terminal.leave_alt(),
61 Err(error) => {
62 let _ = terminal.leave_alt();
63 Err(error)
64 },
65 }
66}More examples
Sourcepub fn probe_results(self, probe: ProbeResults) -> Self
pub fn probe_results(self, probe: ProbeResults) -> Self
Carries replies and preserved input from an earlier crate::negotiate
call into terminal mode restoration and the live decoder.
Sourcepub const fn probe_timeout(self, timeout: Duration) -> Self
pub const fn probe_timeout(self, timeout: Duration) -> Self
Sets the capability-probe deadline used when capabilities were not supplied.
Sourcepub const fn cursor_style(self, cursor_style: CursorStyle) -> Self
pub const fn cursor_style(self, cursor_style: CursorStyle) -> Self
Requests a cursor style for the terminal session.
Sourcepub const fn mouse(self, mouse: bool) -> Self
pub const fn mouse(self, mouse: bool) -> Self
Enables inline mouse reporting (click, drag, motion) for the session.
This trades native text selection for pointer interaction, so leave it off unless the application is genuinely pointer-driven.
Examples found in repository?
53async fn main() -> io::Result<()> {
54 let caps = detect();
55 let charset = UiContext::default().with_terminal_caps(&caps).charset;
56 let mut terminal = Terminal::enter(TerminalOptions::new(caps).mouse(true))?;
57 let mut renderer = Renderer::new(TtyOut::new()?);
58 renderer.apply_caps(&caps)?;
59 match run(&mut terminal, &mut renderer, charset).await {
60 Ok(()) => terminal.leave_alt(),
61 Err(error) => {
62 let _ = terminal.leave_alt();
63 Err(error)
64 },
65 }
66}Sourcepub const fn capture_stderr(self, capture: bool) -> Self
pub const fn capture_stderr(self, capture: bool) -> Self
Enables or disables capture of unmanaged stderr writes.
Trait Implementations§
Source§impl Clone for TerminalOptions
impl Clone for TerminalOptions
Source§fn clone(&self) -> TerminalOptions
fn clone(&self) -> TerminalOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TerminalOptions
impl Debug for TerminalOptions
Source§impl Default for TerminalOptions
impl Default for TerminalOptions
impl Eq for TerminalOptions
Source§impl PartialEq for TerminalOptions
impl PartialEq for TerminalOptions
impl StructuralPartialEq for TerminalOptions
Auto Trait Implementations§
impl Freeze for TerminalOptions
impl RefUnwindSafe for TerminalOptions
impl Send for TerminalOptions
impl Sync for TerminalOptions
impl Unpin for TerminalOptions
impl UnsafeUnpin for TerminalOptions
impl UnwindSafe for TerminalOptions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more