ServiceHandler

Struct ServiceHandler 

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

Handle for managing a running service: grpc or http.

This handle provides control over a running service, allowing you to:

  • Wait for the service to start accepting connections
  • Signal graceful shutdown
  • Wait for the service to fully stop
  • Check if the service task has completed

The handle uses a cancellation token for graceful shutdown and provides async methods for coordinating server lifecycle events.

Implementations§

Source§

impl ServiceHandler

Source

pub async fn wait_for_start(&mut self) -> Result<()>

Waits for the server to start accepting connections.

This method blocks until the server has successfully bound to its configured address and is ready to accept gRPC requests.

§Panics

Panics if called more than once, as the start signal is consumed.

Source

pub async fn wait_for_stop(self) -> Result<()>

Waits for the server to completely stop.

This method consumes the handle and blocks until the server task has finished executing. Use this after calling shutdown() to ensure clean termination.

§Panics

Panics if the server task panicked during execution.

Source

pub fn shutdown(&self)

Signals the server to begin graceful shutdown.

This method triggers the shutdown process but does not wait for completion. Use wait_for_stop() to wait for the server to fully stop.

Source

pub fn is_finished(&self) -> bool

Checks if the server task has completed.

Returns true if the server has finished running, either due to shutdown or an error condition.

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

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
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