#[repr(transparent)]pub struct FixedLenByteArray(ByteArray);Expand description
Wrapper type for performance reasons, this represents FIXED_LEN_BYTE_ARRAY but in all other
considerations behaves the same as ByteArray
§Performance notes:
This type is a little unfortunate, without it the compiler generates code that takes quite a
big hit on the CPU pipeline. Essentially the previous version stalls awaiting the result of
T::get_physical_type() == Type::FIXED_LEN_BYTE_ARRAY.
Its debatable if this is wanted, it is out of spec for what parquet documents as its base types, although there are code paths in the Rust (and potentially the C++) versions that warrant this.
With this wrapper type the compiler generates more targeted code paths matching the higher level logical types, removing the data-hazard from all decoding and encoding paths.
Tuple Fields§
§0: ByteArrayMethods from Deref<Target = ByteArray>§
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Gets length of the underlying byte buffer.
§Panics
Panics if no data has been set, e.g. on a ByteArray::new instance
Trait Implementations§
Source§impl AsBytes for FixedLenByteArray
impl AsBytes for FixedLenByteArray
Source§impl AsRef<[u8]> for FixedLenByteArray
impl AsRef<[u8]> for FixedLenByteArray
Source§impl Clone for FixedLenByteArray
impl Clone for FixedLenByteArray
Source§fn clone(&self) -> FixedLenByteArray
fn clone(&self) -> FixedLenByteArray
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ColumnIndexIterators for FixedLenByteArray
impl ColumnIndexIterators for FixedLenByteArray
Source§type Item = FixedLenByteArray
type Item = FixedLenByteArray
Source§fn min_values_iter(
colidx: &ColumnIndexMetaData,
) -> impl Iterator<Item = Option<Self::Item>>
fn min_values_iter( colidx: &ColumnIndexMetaData, ) -> impl Iterator<Item = Option<Self::Item>>
Source§fn max_values_iter(
colidx: &ColumnIndexMetaData,
) -> impl Iterator<Item = Option<Self::Item>>
fn max_values_iter( colidx: &ColumnIndexMetaData, ) -> impl Iterator<Item = Option<Self::Item>>
Source§impl Debug for FixedLenByteArray
impl Debug for FixedLenByteArray
Source§impl Default for FixedLenByteArray
impl Default for FixedLenByteArray
Source§fn default() -> FixedLenByteArray
fn default() -> FixedLenByteArray
Source§impl Deref for FixedLenByteArray
impl Deref for FixedLenByteArray
Source§impl DerefMut for FixedLenByteArray
impl DerefMut for FixedLenByteArray
Source§impl Display for FixedLenByteArray
impl Display for FixedLenByteArray
Source§impl From<ByteArray> for FixedLenByteArray
impl From<ByteArray> for FixedLenByteArray
Source§impl From<FixedLenByteArray> for ByteArray
impl From<FixedLenByteArray> for ByteArray
Source§fn from(other: FixedLenByteArray) -> Self
fn from(other: FixedLenByteArray) -> Self
Source§impl HeapSize for FixedLenByteArray
impl HeapSize for FixedLenByteArray
Source§impl MakeStatistics for FixedLenByteArray
impl MakeStatistics for FixedLenByteArray
fn make_statistics(statistics: ValueStatistics<Self>) -> Statisticswhere
Self: Sized,
Source§impl ParquetValueType for FixedLenByteArray
impl ParquetValueType for FixedLenByteArray
const PHYSICAL_TYPE: Type = Type::FIXED_LEN_BYTE_ARRAY
Source§fn encode<W: Write>(
values: &[Self],
writer: &mut W,
_: &mut BitWriter,
) -> Result<()>
fn encode<W: Write>( values: &[Self], writer: &mut W, _: &mut BitWriter, ) -> Result<()>
Source§fn set_data(decoder: &mut PlainDecoderDetails, data: Bytes, num_values: usize)
fn set_data(decoder: &mut PlainDecoderDetails, data: Bytes, num_values: usize)
Source§fn decode(
buffer: &mut [Self],
decoder: &mut PlainDecoderDetails,
) -> Result<usize>
fn decode( buffer: &mut [Self], decoder: &mut PlainDecoderDetails, ) -> Result<usize>
fn skip(decoder: &mut PlainDecoderDetails, num_values: usize) -> Result<usize>
Source§fn dict_encoding_size(&self) -> (usize, usize)
fn dict_encoding_size(&self) -> (usize, usize)
Source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Source§fn as_mut_any(&mut self) -> &mut dyn Any
fn as_mut_any(&mut self) -> &mut dyn Any
Source§fn set_from_bytes(&mut self, data: Bytes)
fn set_from_bytes(&mut self, data: Bytes)
Bytes] Read more