pub struct IpcPayload(/* private fields */);Expand description
A byte buffer holding an Arrow IPC stream, ready to decode.
A dora-owned wrapper: the receive path needs to hand the decoder a buffer
whose backing allocation it does not copy, but the Arrow buffer type that
makes that possible must not appear in dora’s frozen public API (it would
pin 1.x to one Arrow major — see
docs/plan-arrow-version-decoupling.md). Construct one from the payload
you have; decoding is zero-copy when the payload is 64-byte aligned, which
dora’s own 128-byte-aligned and page-aligned shared-memory payloads always
are.
Implementations§
Source§impl IpcPayload
impl IpcPayload
Sourcepub fn from_aligned_vec(data: AVec<u8, ConstAlign<128>>) -> Self
pub fn from_aligned_vec(data: AVec<u8, ConstAlign<128>>) -> Self
Wrap a 128-byte-aligned payload buffer without copying it.
Sourcepub fn from_vec(data: Vec<u8>) -> Self
pub fn from_vec(data: Vec<u8>) -> Self
Take ownership of a Vec payload without copying it.
A plain Vec carries no alignment guarantee, so the decoder may have to
realign individual buffers; use from_aligned_vec
on the hot path.
Sourcepub fn from_slice(data: &[u8]) -> Self
pub fn from_slice(data: &[u8]) -> Self
Copy a payload out of a slice.
Trait Implementations§
Source§impl Clone for IpcPayload
impl Clone for IpcPayload
Source§fn clone(&self) -> IpcPayload
fn clone(&self) -> IpcPayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for IpcPayload
impl RefUnwindSafe for IpcPayload
impl Send for IpcPayload
impl Sync for IpcPayload
impl Unpin for IpcPayload
impl UnsafeUnpin for IpcPayload
impl UnwindSafe for IpcPayload
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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> ⓘ
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> ⓘ
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>
T in a tonic::Request