#[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§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§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