Skip to main content

HttpServer

Struct HttpServer 

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

A running server spawned onto the tokio runtime. Dropping the handle aborts the accept loop (mirrors relay::RelayServer). The handler must be Send; the interpreter’s !Send handler uses Listener/Conn directly instead.

The handle also carries the Lifecycle, so an embedder can flip readiness (HttpServer::set_ready) and drain gracefully (HttpServer::drain) exactly as an orchestrator’s SIGTERM handler would.

Implementations§

Source§

impl HttpServer

Source

pub fn addr(&self) -> SocketAddr

The bound address (resolve :0 to its real port for clients).

Source

pub fn url(&self) -> String

The http://… base URL a client dials.

Source

pub fn set_ready(&self, ready: bool)

Flip the readiness gate: false sheds new requests with 503 (a load balancer stops routing), true serves them — independent of liveness (the accept loop stays up either way).

Source

pub fn is_ready(&self) -> bool

Whether the server is currently serving (ready and not draining).

Source

pub async fn drain(&self, deadline: Duration) -> DrainOutcome

Gracefully drain: stop accepting new connections (new requests shed with 503), wait up to deadline for in-flight requests to finish, and return the still-running count as DrainOutcome::dropped (0 = every in-flight request completed). Never hangs past deadline.

Source

pub fn lifecycle(&self) -> &Lifecycle

The shared lifecycle handle (for advanced embedders).

Trait Implementations§

Source§

impl Drop for HttpServer

Source§

fn drop(&mut self)

Executes the destructor for this type. 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, 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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,