pub struct SourceChannels {
pub request_tx: Sender<(HttpMeta, Receiver<Result<Bytes, CamelError>>)>,
pub request_rx: Arc<Mutex<Receiver<(HttpMeta, Receiver<Result<Bytes, CamelError>>)>>>,
pub exchange_tx: Sender<(Exchange, Sender<SubmitOutcome>)>,
pub exchange_rx: Receiver<(Exchange, Sender<SubmitOutcome>)>,
}Expand description
Paired channel endpoints for bridging the guest to async host tasks.
Created once per source consumer instance. The *_tx halves go to the
HTTP listener and pipeline bridge tasks; request_rx lives in
SourceHostState inside the wasmtime Store, wrapped in an
Arc<tokio::sync::Mutex<…>> so the async host import (which receives only
&Accessor, not &mut self) can lock().await it to call recv().await.
The request channel carries (HttpMeta, body_rx) — metadata plus a
per-request bounded channel streaming body chunks. The body is never
materialized as a single Vec<u8>, removing the old 10 MiB cap.
Fields§
§request_tx: Sender<(HttpMeta, Receiver<Result<Bytes, CamelError>>)>§request_rx: Arc<Mutex<Receiver<(HttpMeta, Receiver<Result<Bytes, CamelError>>)>>>§exchange_tx: Sender<(Exchange, Sender<SubmitOutcome>)>§exchange_rx: Receiver<(Exchange, Sender<SubmitOutcome>)>Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for SourceChannels
impl !UnwindSafe for SourceChannels
impl Freeze for SourceChannels
impl Send for SourceChannels
impl Sync for SourceChannels
impl Unpin for SourceChannels
impl UnsafeUnpin for SourceChannels
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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>
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> 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 more