Skip to main content

Compress

Trait Compress 

pub trait Compress:
    Sized
    + Send
    + Sync
    + Debug {
    type Compressed: BufMut + AsRef<[u8]> + AsMut<[u8]> + Into<Vec<u8>> + Default + Send + Sync + Debug;

    // Required method
    fn compress_to_buf<B>(&self, buf: &mut B)
       where B: BufMut + AsMut<[u8]>;

    // Provided methods
    fn uncompressable_ref(&self) -> Option<&[u8]> { ... }
    fn compress(self) -> Self::Compressed { ... }
}
Available on crate feature provider only.
Expand description

Trait that will transform the data to be saved in the DB in a (ideally) compressed format.

Required Associated Types§

type Compressed: BufMut + AsRef<[u8]> + AsMut<[u8]> + Into<Vec<u8>> + Default + Send + Sync + Debug

Compressed type.

Required Methods§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

Compresses data to a given buffer.

Provided Methods§

fn uncompressable_ref(&self) -> Option<&[u8]>

If the type cannot be compressed, return its inner reference as Some(self.as_ref())

fn compress(self) -> Self::Compressed

Compresses data going into the database.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Compress for u8

§

type Compressed = Vec<u8>

§

fn compress(self) -> <u8 as Compress>::Compressed

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for u16

§

type Compressed = Vec<u8>

§

fn compress(self) -> <u16 as Compress>::Compressed

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for u32

§

type Compressed = Vec<u8>

§

fn compress(self) -> <u32 as Compress>::Compressed

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for u64

§

type Compressed = Vec<u8>

§

fn compress(self) -> <u64 as Compress>::Compressed

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

Source§

impl Compress for PruneCheckpoint

Source§

type Compressed = Vec<u8>

Source§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

Source§

impl Compress for StageCheckpoint

Source§

type Compressed = Vec<u8>

Source§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for Vec<u8>

§

type Compressed = Vec<u8>

§

fn compress(self) -> <Vec<u8> as Compress>::Compressed

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for EthereumTxEnvelope<TxEip4844>

§

type Compressed = Vec<u8>

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

§

impl Compress for GenesisAccount

§

type Compressed = Vec<u8>

§

fn compress_to_buf<B>(&self, buf: &mut B)
where B: BufMut + AsMut<[u8]>,

Implementors§

§

impl Compress for TxType

§

impl Compress for Address

§

impl Compress for Bytes

§

impl Compress for FixedBytes<32>

§

impl Compress for Account

§

impl Compress for Bytecode

§

impl Compress for Header

§

impl Compress for Log

§

impl Compress for StorageEntry

§

impl Compress for BranchNodeCompact

Source§

impl Compress for PackedStorageTrieEntry

Source§

impl Compress for PackedStoredNibbles

Source§

impl Compress for PackedStoredNibblesSubKey

Source§

impl Compress for StorageTrieEntry

Source§

impl Compress for StoredNibbles

Source§

impl Compress for StoredNibblesSubKey

Source§

impl Compress for AccountBeforeTx

Source§

impl Compress for CompactU256

Source§

impl Compress for IntegerList

Source§

impl Compress for StaticFileBlockWithdrawals

Source§

impl Compress for StorageBeforeTx

Source§

impl Compress for StoredBlockBodyIndices

Source§

impl Compress for StoredBlockWithdrawals

Source§

impl Compress for ClientVersion

Source§

impl<H> Compress for StoredBlockOmmers<H>
where H: Debug + Send + Sync + Compact,

§

impl<T> Compress for EthereumReceipt<T>
where T: Debug + Send + Sync + Compact,

Source§

impl<V> Compress for RawValue<V>
where V: Value,