AppBootstrapper

Struct AppBootstrapper 

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

The main bootstrap orchestrator that handles the complete app startup process

This struct provides a fluent API for configuring and starting an elif.rs application:

  • Discovers all modules automatically via the compile-time registry
  • Resolves module dependencies using ModuleRuntime with enhanced error handling
  • Configures the DI container with all providers
  • Registers all controllers and their routes
  • Sets up middleware pipeline
  • Starts the HTTP server

Implementations§

Source§

impl AppBootstrapper

Source

pub fn new() -> BootstrapResult<Self>

Create a new AppBootstrapper with automatic module discovery

This method:

  1. Gets all modules from the global compile-time registry
  2. Converts them to ModuleDescriptors for ModuleRuntime
  3. Uses ModuleRuntime for enhanced dependency resolution and lifecycle management
  4. Sets up default configuration
Source

pub fn with_config(self, config: HttpConfig) -> Self

Configure the HTTP server with custom configuration

Source

pub fn with_middleware(self, middleware: Vec<Box<dyn Middleware>>) -> Self

Add middleware to the application

Source

pub fn with_container(self, container: IocContainer) -> Self

Use a pre-configured DI container

Source

pub fn listen( self, addr: impl Into<SocketAddr> + Send + 'static, ) -> Pin<Box<dyn Future<Output = BootstrapResult<()>> + Send>>

Start the HTTP server on the specified address

This method performs the complete bootstrap sequence:

  1. Configures the DI container with all module providers using ModuleRuntime
  2. Creates and configures the router with all controller routes
  3. Sets up the middleware pipeline
  4. Starts the HTTP server
Source

pub fn modules(&self) -> &[CompileTimeModuleMetadata]

Get discovered modules (for debugging/introspection)

Source

pub fn load_order(&self) -> &[String]

Get module load order from ModuleRuntime (for debugging/introspection)

Trait Implementations§

Source§

impl Debug for AppBootstrapper

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AppBootstrapper

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> 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> 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.
Source§

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

Source§

fn vzip(self) -> V

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,