Skip to main content

MicrodeApplication

Struct MicrodeApplication 

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

Composes modules and coordinates their lifecycle.

Implementations§

Source§

impl MicrodeApplication

Source

pub fn new() -> Self

Creates an idle application with the production module context.

Source

pub fn state(&self) -> MicrodeApplicationState

Source

pub fn install<Module, Factory>( &mut self, factory: Factory, ) -> Result<(), MicrodeError>
where Module: MicrodeModule + 'static, Factory: FnOnce(MicrodeContextHandle) -> Module,

Source

pub fn install_named<Module, Factory>( &mut self, id: impl Into<String>, factory: Factory, ) -> Result<ModuleHandle<Module>, MicrodeError>
where Module: MicrodeModule + 'static, Factory: FnOnce(MicrodeContextHandle) -> Module,

Source

pub fn bind( &mut self, consumer: &dyn ModuleHandleIdentity, slot: &dyn RelationshipSlot, target: &dyn ModuleHandleIdentity, ) -> Result<(), MicrodeError>

Source

pub fn serve( &mut self, ) -> BoxFuture<'static, Result<MicrodeExecutionResult, MicrodeError>>

Serves the application using module completion and stop requests to control its lifetime.

The lifecycle continues if the returned future is dropped. Any later call to Self::stop receives the same shared completion result.

Source

pub fn run<Main, MainFuture>( &mut self, main: Main, ) -> BoxFuture<'static, Result<MicrodeExecutionResult, MicrodeError>>
where Main: FnOnce(MicrodeContextHandle) -> MainFuture + Send + 'static, MainFuture: Future<Output = Result<(), MicrodeError>> + Send + 'static,

Runs an application-level task after all modules have started.

Completion or failure of the task begins orderly application shutdown.

Source

pub fn stop( &self, request: MicrodeStopRequest, ) -> BoxFuture<'static, Result<MicrodeExecutionResult, MicrodeError>>

Requests an orderly stop and waits for lifecycle completion.

Trait Implementations§

Source§

impl Default for MicrodeApplication

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 = !

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.