pub trait TerminalFacade: Send + Sync {
// Required methods
fn open<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
request: OpenRequest,
) -> Pin<Box<dyn Future<Output = Result<OpenAnswer, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
text: Option<String>,
keys: Vec<Key>,
) -> Pin<Box<dyn Future<Output = Result<TerminalState, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
since: Option<u64>,
max_lines: usize,
max_bytes: usize,
) -> Pin<Box<dyn Future<Output = Result<ReadAnswer, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn wait<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
until: WaitUntil,
timeout_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<WaitAnswer, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn resize<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
cols: u16,
rows: u16,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn close<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
) -> Pin<Box<dyn Future<Output = Result<Option<TerminalExit>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn hand_off<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<HandOffEnding, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn run<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
command: &'life2 str,
cwd: Option<String>,
timeout_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<RunAnswer, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
}Expand description
The agent’s terminal, as one tool call sees it.
Required Methods§
fn open<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
request: OpenRequest,
) -> Pin<Box<dyn Future<Output = Result<OpenAnswer, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
text: Option<String>,
keys: Vec<Key>,
) -> Pin<Box<dyn Future<Output = Result<TerminalState, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
since: Option<u64>,
max_lines: usize,
max_bytes: usize,
) -> Pin<Box<dyn Future<Output = Result<ReadAnswer, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wait<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
until: WaitUntil,
timeout_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<WaitAnswer, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resize<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
cols: u16,
rows: u16,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn close<'life0, 'life1, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
) -> Pin<Box<dyn Future<Output = Result<Option<TerminalExit>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn hand_off<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
id: u16,
reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<HandOffEnding, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn run<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seat: &'life1 SessionSlot,
command: &'life2 str,
cwd: Option<String>,
timeout_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<RunAnswer, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".