Skip to main content

CompressedPage

Struct CompressedPage 

Source
pub struct CompressedPage {
    compressed_page: Page,
    uncompressed_size: usize,
}
Expand description

Helper struct to represent pages with potentially compressed buffer (data page v1) or compressed and concatenated buffer (def levels + rep levels + compressed values for data page v2).

The difference with Page is that Page buffer is always uncompressed.

Fields§

§compressed_page: Page§uncompressed_size: usize

Implementations§

Source§

impl CompressedPage

Source

pub fn new(compressed_page: Page, uncompressed_size: usize) -> Self

Creates CompressedPage from a page with potentially compressed buffer and uncompressed size.

Source

pub fn page_type(&self) -> PageType

Returns page type.

Source

pub fn compressed_page(&self) -> &Page

Returns underlying page with potentially compressed buffer.

Source

pub fn uncompressed_size(&self) -> usize

Returns uncompressed size in bytes.

Source

pub fn compressed_size(&self) -> usize

Returns compressed size in bytes.

Note that it is assumed that buffer is compressed, but it may not be. In this case compressed size will be equal to uncompressed size.

Source

pub fn num_values(&self) -> u32

Number of values in page.

Source

pub fn encoding(&self) -> Encoding

Returns encoding for values in page.

Source

pub fn data(&self) -> &[u8]

Returns slice of compressed buffer in the page.

Source

pub fn memory_usage(&self) -> usize

Returns the number of heap bytes this page currently holds.

This is the page’s compressed buffer (the embedded [Bytes]); use it to account for a buffered page’s memory footprint rather than reaching for data().len() at each call site.

Source

pub(crate) fn to_thrift_header(&self) -> Result<PageHeader>

Returns the thrift page header

Source

pub(crate) fn with_new_compressed_buffer(self, new_buffer: Bytes) -> Self

Update the compressed buffer for a page. This might be required when encrypting page data for example. The size of uncompressed data must not change.

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Ungil for T
where T: Send,

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V