pub struct CDMSCAppBuilder { /* private fields */ }Expand description
Opaque C wrapper structure for DMSCAppBuilder.
Provides C-compatible interface to the Rust application builder implementation. The builder uses the fluent builder pattern to construct DMSC applications with proper dependency injection and lifecycle management.
§Builder Responsibilities
The application builder handles:
- Service registration and dependency management
- Middleware composition and ordering
- Configuration propagation to components
- Lifecycle event registration
- Application initialization and startup coordination
§Builder Pattern
The builder implements a fluent interface allowing method chaining:
dmsc_app_builder_register_module(builder, module_a);
dmsc_app_builder_register_module(builder, module_b);
dmsc_app_builder_configure(builder, config);
dmsc_app_builder_with_middleware(builder, middleware_1);
dmsc_app_builder_with_middleware(builder, middleware_2);§Thread Safety
The builder is not thread-safe. All builder operations should occur from a single thread before application startup. Concurrent builder access results in undefined behavior.
Auto Trait Implementations§
impl Freeze for CDMSCAppBuilder
impl !RefUnwindSafe for CDMSCAppBuilder
impl Send for CDMSCAppBuilder
impl Sync for CDMSCAppBuilder
impl Unpin for CDMSCAppBuilder
impl !UnwindSafe for CDMSCAppBuilder
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request