Skip to main content

Application

Struct Application 

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

A complete Saddle application hosted by the process-wide async runtime.

This is an assembly API, not a general-purpose async executor: it exposes no Tokio handle, task spawning, runtime configuration, or arbitrary block_on.

Implementations§

Source§

impl Application

Source

pub fn new() -> Self

Creates an empty application assembly.

Source

pub fn request_lifecycle(&self) -> RequestLifecycle

Returns the request lifecycle shared with Saddle’s Service adapter.

Source

pub fn register<C>(&mut self, component: C) -> Result<()>
where C: ComponentLifecycle + 'static,

Registers a framework component for managed startup and shutdown.

Components start in registration order and stop in reverse order.

Source

pub fn register_shared( &mut self, component: Arc<dyn ComponentLifecycle>, ) -> Result<()>

Registers an already shared framework component.

Source

pub fn run(self) -> Result<()>

Runs the application on Saddle’s single process-wide async runtime.

The call blocks the process entry thread until SIGINT or, on Unix, SIGTERM. Shutdown first closes request admission, then waits for every admitted request, and finally stops components in reverse order.

Source

pub fn run_with<F, Fut>(bootstrap: F) -> Result<()>
where F: FnOnce() -> Fut + Send + 'static, Fut: Future<Output = Result<Self>> + Send + 'static,

Creates the application inside Saddle’s process-wide async runtime and then runs it until shutdown.

This is the framework assembly path for components whose initialization performs async I/O. Business code is not given a runtime handle or an executor through this API.

Trait Implementations§

Source§

impl Default for Application

Source§

fn default() -> Self

Returns the “default value” for a 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, 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.