#[non_exhaustive]pub enum CommittableColumn<'a> {
Boolean(&'a [bool]),
TinyInt(&'a [i8]),
SmallInt(&'a [i16]),
Int(&'a [i32]),
BigInt(&'a [i64]),
Int128(&'a [i128]),
Decimal75(Precision, i8, Vec<[u64; 4]>),
Scalar(Vec<[u64; 4]>),
VarChar(Vec<[u64; 4]>),
TimestampTZ(PoSQLTimeUnit, PoSQLTimeZone, &'a [i64]),
RangeCheckWord(&'a [u8]),
}
Expand description
Column data in “committable form”.
For some column types, transformations need to be applied before commitments are created. These transformations require allocating new memory. This is a problem since blitzar only borrows slices of data to commit to. Normal column types don’t store their data in “committable” form, so they cannot interface with blitzar directly.
This type acts as an intermediate column type that can be used with blitzar directly. For column types that need to be transformed, their “committable form” is owned here. For column types that don’t need to allocate new memory, their data is only borrowed here.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Boolean(&'a [bool])
Borrowed Bool column, mapped to bool
.
TinyInt(&'a [i8])
Borrowed TinyInt
column, mapped to i8
.
SmallInt(&'a [i16])
Borrowed SmallInt
column, mapped to i16
.
Int(&'a [i32])
Borrowed Int
column, mapped to i32
.
BigInt(&'a [i64])
Borrowed BigInt
column, mapped to i64
.
Int128(&'a [i128])
Borrowed Int128 column, mapped to i128
.
Decimal75(Precision, i8, Vec<[u64; 4]>)
Borrowed Decimal75(precion, scale, column), mapped to ‘i256’
Scalar(Vec<[u64; 4]>)
Column of big ints for committing to, montgomery-reduced from a Scalar column.
VarChar(Vec<[u64; 4]>)
Column of limbs for committing to scalars, hashed from a VarChar
column.
TimestampTZ(PoSQLTimeUnit, PoSQLTimeZone, &'a [i64])
Borrowed Timestamp column with Timezone, mapped to i64
.
RangeCheckWord(&'a [u8])
Borrowed byte column, mapped to u8
. This is not a PoSQL
type, we need this to commit to words in the range check.
Implementations§
Source§impl<'a> CommittableColumn<'a>
impl<'a> CommittableColumn<'a>
Sourcepub fn column_type(&self) -> ColumnType
pub fn column_type(&self) -> ColumnType
Returns the type of the column.
Trait Implementations§
Source§impl<'a> Clone for CommittableColumn<'a>
impl<'a> Clone for CommittableColumn<'a>
Source§fn clone(&self) -> CommittableColumn<'a>
fn clone(&self) -> CommittableColumn<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'a> Debug for CommittableColumn<'a>
impl<'a> Debug for CommittableColumn<'a>
Source§impl<'a> From<&'a [bool]> for CommittableColumn<'a>
impl<'a> From<&'a [bool]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [i128]> for CommittableColumn<'a>
impl<'a> From<&'a [i128]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [i16]> for CommittableColumn<'a>
impl<'a> From<&'a [i16]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [i32]> for CommittableColumn<'a>
impl<'a> From<&'a [i32]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [i64]> for CommittableColumn<'a>
impl<'a> From<&'a [i64]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [i8]> for CommittableColumn<'a>
impl<'a> From<&'a [i8]> for CommittableColumn<'a>
Source§impl<'a> From<&'a [u8]> for CommittableColumn<'a>
impl<'a> From<&'a [u8]> for CommittableColumn<'a>
Source§impl<'a> From<&CommittableColumn<'a>> for ColumnType
impl<'a> From<&CommittableColumn<'a>> for ColumnType
Source§fn from(value: &CommittableColumn<'a>) -> Self
fn from(value: &CommittableColumn<'a>) -> Self
Source§impl<'a, 'b> From<&'a CommittableColumn<'b>> for Sequence<'a>
impl<'a, 'b> From<&'a CommittableColumn<'b>> for Sequence<'a>
Source§fn from(value: &'a CommittableColumn<'b>) -> Self
fn from(value: &'a CommittableColumn<'b>) -> Self
Source§impl<'a, S: Scalar> From<&'a OwnedColumn<S>> for CommittableColumn<'a>
impl<'a, S: Scalar> From<&'a OwnedColumn<S>> for CommittableColumn<'a>
Source§fn from(value: &'a OwnedColumn<S>) -> Self
fn from(value: &'a OwnedColumn<S>) -> Self
Source§impl<'a> PartialEq for CommittableColumn<'a>
impl<'a> PartialEq for CommittableColumn<'a>
impl<'a> Eq for CommittableColumn<'a>
impl<'a> StructuralPartialEq for CommittableColumn<'a>
Auto Trait Implementations§
impl<'a> Freeze for CommittableColumn<'a>
impl<'a> RefUnwindSafe for CommittableColumn<'a>
impl<'a> Send for CommittableColumn<'a>
impl<'a> Sync for CommittableColumn<'a>
impl<'a> Unpin for CommittableColumn<'a>
impl<'a> UnwindSafe for CommittableColumn<'a>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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 more