pub struct PtyDriver { /* private fields */ }Expand description
Driver that spawns an agent under a pseudo-terminal.
Construction is via the PtyDriverBuilder returned by Self::builder.
Implementations§
Source§impl PtyDriver
impl PtyDriver
Sourcepub fn builder(command: impl Into<String>) -> PtyDriverBuilder
pub fn builder(command: impl Into<String>) -> PtyDriverBuilder
Begin building a PTY-driven agent session.
Sourcepub fn resize(&self, rows: u16, cols: u16) -> Result<(), DriverError>
pub fn resize(&self, rows: u16, cols: u16) -> Result<(), DriverError>
Resize the PTY. Forwards SIGWINCH to the child.
Sourcepub fn close_input(&mut self)
pub fn close_input(&mut self)
Close the input channel so the agent sees stdin EOF (if it cares). For most TUI agents this has no visible effect — they’re driven via keystrokes, not stdin EOF.
Sourcepub async fn send_bytes(&mut self, bytes: &[u8]) -> Result<(), DriverError>
pub async fn send_bytes(&mut self, bytes: &[u8]) -> Result<(), DriverError>
Send raw bytes directly to the agent’s PTY input. Useful for
keystrokes (Ctrl+C = \x03, Tab = \t, arrow keys = \x1b[A …).
Trait Implementations§
Source§impl Driver for PtyDriver
impl Driver for PtyDriver
Source§fn send<'life0, 'async_trait>(
&'life0 mut self,
frame: ClientFrame,
) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send<'life0, 'async_trait>(
&'life0 mut self,
frame: ClientFrame,
) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a frame to the agent. The frame is processed asynchronously;
resulting events arrive via
Driver::next_event.Source§fn next_event<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Option<AgentEvent>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn next_event<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Option<AgentEvent>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Await the next event from the agent. Returns
None when the
agent has exited cleanly.Auto Trait Implementations§
impl Freeze for PtyDriver
impl !RefUnwindSafe for PtyDriver
impl Send for PtyDriver
impl !Sync for PtyDriver
impl Unpin for PtyDriver
impl UnsafeUnpin for PtyDriver
impl !UnwindSafe for PtyDriver
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> 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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.