pub struct StructuralStructScheduler { /* private fields */ }
Expand description
A scheduler for structs
The implementation is actually a bit more tricky than one might initially think. We can’t just go through and schedule each column one after the other. This would mean our decode can’t start until nearly all the data has arrived (since we need data from each column to yield a batch)
Instead, we schedule in row-major fashion
Note: this scheduler is the starting point for all decoding. This is because we treat the top-level record batch as a non-nullable struct.
Implementations§
Trait Implementations§
Source§impl Debug for StructuralStructScheduler
impl Debug for StructuralStructScheduler
Source§impl StructuralFieldScheduler for StructuralStructScheduler
impl StructuralFieldScheduler for StructuralStructScheduler
fn schedule_ranges<'a>( &'a self, ranges: &[Range<u64>], filter: &FilterExpression, ) -> Result<Box<dyn StructuralSchedulingJob + 'a>>
fn initialize<'a>( &'a mut self, filter: &'a FilterExpression, context: &'a SchedulerContext, ) -> BoxFuture<'a, Result<()>>
Auto Trait Implementations§
impl Freeze for StructuralStructScheduler
impl !RefUnwindSafe for StructuralStructScheduler
impl Send for StructuralStructScheduler
impl !Sync for StructuralStructScheduler
impl Unpin for StructuralStructScheduler
impl !UnwindSafe for StructuralStructScheduler
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> 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