pub enum SessionTransport {
InProcess(Box<AgentSessionHandle>),
RpcSubprocess(RpcTransportClient),
}Expand description
Unified adapter over in-process and subprocess-backed session control.
Variants§
InProcess(Box<AgentSessionHandle>)
RpcSubprocess(RpcTransportClient)
Implementations§
Source§impl SessionTransport
impl SessionTransport
pub async fn in_process(options: SessionOptions) -> Result<Self>
pub fn rpc_subprocess(options: RpcTransportOptions) -> Result<Self>
pub fn as_in_process_mut(&mut self) -> Option<&mut AgentSessionHandle>
pub fn as_rpc_mut(&mut self) -> Option<&mut RpcTransportClient>
Sourcepub async fn prompt(
&mut self,
input: impl Into<String>,
on_event: impl Fn(SessionTransportEvent) + Send + Sync + 'static,
) -> Result<SessionPromptResult>
pub async fn prompt( &mut self, input: impl Into<String>, on_event: impl Fn(SessionTransportEvent) + Send + Sync + 'static, ) -> Result<SessionPromptResult>
Send one prompt over whichever transport is active.
- In-process mode returns the final assistant message.
- RPC mode waits for
agent_endand returns collected raw events.
Sourcepub async fn state(&mut self) -> Result<SessionTransportState>
pub async fn state(&mut self) -> Result<SessionTransportState>
Return a state snapshot from the active transport.
Auto Trait Implementations§
impl Freeze for SessionTransport
impl !RefUnwindSafe for SessionTransport
impl Send for SessionTransport
impl Sync for SessionTransport
impl Unpin for SessionTransport
impl UnsafeUnpin for SessionTransport
impl !UnwindSafe for SessionTransport
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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