pub enum Column<C: Columnar> {
Typed(C::Container),
Bytes(Bytes),
Align(Region<u64>),
}
Expand description
A container based on a columnar store, encoded in aligned bytes.
The type can represent typed data, bytes from Timely, or an aligned allocation. The name
is singular to express that the preferred format is Column::Align
. The Column::Typed
variant is used to construct the container, and it owns potentially multiple columns of data.
Variants§
Typed(C::Container)
The typed variant of the container.
Bytes(Bytes)
The binary variant of the container.
Align(Region<u64>)
Relocated, aligned binary data, if Bytes
doesn’t work for some reason.
Reasons could include misalignment, cloning of data, or wanting
to release the Bytes
as a scarce resource.
Implementations§
Trait Implementations§
Source§impl<C: Columnar> Container for Column<C>
impl<C: Columnar> Container for Column<C>
Source§type ItemRef<'a> = <C as Columnar>::Ref<'a>
type ItemRef<'a> = <C as Columnar>::Ref<'a>
The type of elements when reading non-destructively from the container.
Source§type Iter<'a> = IterOwn<<<C as Columnar>::Container as Container<C>>::Borrowed<'a>>
type Iter<'a> = IterOwn<<<C as Columnar>::Container as Container<C>>::Borrowed<'a>>
Iterator type when reading from the container.
Source§type DrainIter<'a> = IterOwn<<<C as Columnar>::Container as Container<C>>::Borrowed<'a>>
type DrainIter<'a> = IterOwn<<<C as Columnar>::Container as Container<C>>::Borrowed<'a>>
Iterator type when draining the container.
Source§fn clear(&mut self)
fn clear(&mut self)
Remove all contents from
self
while retaining allocated memory.
After calling clear
, is_empty
must return true
and len
0.Source§fn iter(&self) -> Self::Iter<'_>
fn iter(&self) -> Self::Iter<'_>
Returns an iterator that reads the contents of this container.
Source§impl<C: Columnar> ContainerBytes for Column<C>
impl<C: Columnar> ContainerBytes for Column<C>
Source§fn from_bytes(bytes: Bytes) -> Self
fn from_bytes(bytes: Bytes) -> Self
Wrap bytes as
Self
.Source§fn length_in_bytes(&self) -> usize
fn length_in_bytes(&self) -> usize
The number of bytes required to serialize the data.
Source§fn into_bytes<W: Write>(&self, writer: &mut W)
fn into_bytes<W: Write>(&self, writer: &mut W)
Writes the binary representation into
writer
.Auto Trait Implementations§
impl<C> Freeze for Column<C>
impl<C> !RefUnwindSafe for Column<C>
impl<C> Send for Column<C>
impl<C> !Sync for Column<C>
impl<C> Unpin for Column<C>
impl<C> !UnwindSafe for Column<C>
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
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>
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::Request
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.