pub struct EngineDeps<S, H, U, E, C> {
pub storage: Arc<S>,
pub http: Arc<H>,
pub uploader: Arc<U>,
pub event_sink: Arc<E>,
pub clock: C,
pub trace: TraceHooks,
pub metrics: Arc<dyn AsyncMetricSink>,
pub max_http_inflight: usize,
pub transport_lifecycle_tx: Option<UnboundedSender<TransportLifecycleEvent>>,
pub transport_trace_tx: Option<TransportTraceSink>,
}Expand description
事件泵依赖聚合(泛型 ports + 配置)。
native / ffi 各自构造此结构(注入自家 EventSink egress),调 run_engine_loop。
Fields§
§storage: Arc<S>§http: Arc<H>§uploader: Arc<U>§event_sink: Arc<E>§clock: C§trace: TraceHooks§metrics: Arc<dyn AsyncMetricSink>Host 边界共享异步指标出口;热路径只执行有界 try_record。
max_http_inflight: usizeHttp effect 并发上限(Http BoundedSpawner 的 worker 数 N)。0 → .max(1) 兜底 1。
transport_lifecycle_tx: Option<UnboundedSender<TransportLifecycleEvent>>§transport_trace_tx: Option<TransportTraceSink>Auto Trait Implementations§
impl<S, H, U, E, C> !RefUnwindSafe for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> !UnwindSafe for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> Freeze for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> Send for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> Sync for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> Unpin for EngineDeps<S, H, U, E, C>
impl<S, H, U, E, C> UnsafeUnpin for EngineDeps<S, H, U, E, C>where
Arc<S>: UnsafeUnpin,
Arc<H>: UnsafeUnpin,
Arc<U>: UnsafeUnpin,
Arc<E>: UnsafeUnpin,
C: UnsafeUnpin,
Blanket Implementations§
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§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