Skip to main content

Codec

Struct Codec 

Source
pub struct Codec { /* private fields */ }
Expand description

Compression callbacks used by clickhouse-c.

Value is pinned because C code retains address of callback table.

Implementations§

Source§

impl Codec

Source

pub fn empty() -> Pin<Box<Self>>

Creates a codec without compression callbacks.

Codec only supports Compression::None until required callbacks are installed through raw_mut. Client::init rejects missing callbacks.

Source

pub unsafe fn from_raw(raw: chc_codec) -> Pin<Box<Self>>

Creates a codec from a raw callback table.

§Safety

Each function pointer must match corresponding field signature. All callbacks required by selected Compression must be present. User data referenced by ud must remain valid while codec exists and from every thread that uses codec.

Source

pub fn lz4() -> Pin<Box<Self>>

Creates built-in LZ4 codec backed by system liblz4.

Source

pub fn zstd() -> Pin<Box<Self>>

Creates built-in Zstandard codec backed by system libzstd.

Source

pub unsafe fn raw_mut(self: Pin<&mut Self>) -> &mut chc_codec

Returns mutable access to raw callback table.

§Safety

C library calls installed function pointers without validation.

  • Each function pointer must match corresponding field signature.
  • All callbacks required by selected Compression must be present. For example, LZ4 requires lz4_compress, lz4_decompress, and lz4_bound.
  • Data referenced by ud must remain valid while codec exists and from every thread that uses codec.

Trait Implementations§

Auto Trait Implementations§

§

impl !Sync for Codec

§

impl !Unpin for Codec

§

impl !UnsafeUnpin for Codec

§

impl Freeze for Codec

§

impl RefUnwindSafe for Codec

§

impl UnwindSafe for Codec

Blanket Implementations§

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.