Skip to main content

ProgramHandle

Struct ProgramHandle 

Source
pub struct ProgramHandle<M: Model> { /* private fields */ }
Expand description

Handle to a running program.

Returned by Program::start() to allow external interaction with the running TUI program. This is particularly useful for SSH applications where events need to be injected from outside the program.

§Example

use bubbletea::{Program, Message};

let handle = Program::new(MyModel::default())
    .with_custom_io()
    .start();

// Send a message to the running program
handle.send(MyMessage::DoSomething);

// Wait for the program to finish
let final_model = handle.wait()?;

Implementations§

Source§

impl<M: Model> ProgramHandle<M>

Source

pub fn send<T: Into<Message>>(&self, msg: T) -> bool

Send a message to the running program.

This queues the message for processing in the program’s event loop. Returns true if the message was sent successfully, false if the program has already exited.

Source

pub fn quit(&self)

Request the program to quit.

This sends a QuitMsg to the program’s event loop.

Source

pub fn wait(self) -> Result<M>

Wait for the program to finish and return the final model state.

This blocks until the program exits.

Source

pub fn is_running(&self) -> bool

Check if the program is still running.

Auto Trait Implementations§

§

impl<M> Freeze for ProgramHandle<M>

§

impl<M> !RefUnwindSafe for ProgramHandle<M>

§

impl<M> Send for ProgramHandle<M>

§

impl<M> Sync for ProgramHandle<M>

§

impl<M> Unpin for ProgramHandle<M>

§

impl<M> !UnwindSafe for ProgramHandle<M>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more