Skip to main content

ChildConnection

Struct ChildConnection 

Source
pub struct ChildConnection { /* private fields */ }
Expand description

An initialized Client connection that owns and supervises its stdio child.

The incoming protocol driver and stderr drain run as soon as this value is returned. Call Self::server for typed traffic, Self::shutdown for a complete graceful lifecycle, or Self::wait when the child is expected to end by itself. Dropping the connection starts a reaper thread that uses Tokio for graceful cleanup when available and always retains a synchronous kill-and-reap fallback across runtime shutdown. Without a current runtime, Drop performs that fallback synchronously.

Implementations§

Source§

impl ChildConnection

Source

pub fn server(&self) -> ServerHandle

Clone the typed handle used to communicate with the child server.

Source

pub fn id(&self) -> u32

The operating-system process identifier while the child is running.

Source

pub async fn shutdown(self) -> Result<ChildOutput, ChildError>

Complete shutdown followed by exit, then reap the child.

Cleanup still disconnects and reclaims the process if either lifecycle operation fails.

Source

pub async fn wait(self) -> Result<ChildOutput, ChildError>

Wait for a child that is expected to terminate without local cleanup.

The process is still reaped and the protocol driver and stderr drain are joined before this future resolves.

Trait Implementations§

Source§

impl Drop for ChildConnection

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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> TaskSend for T
where T: Send + ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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