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 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]>,

§

impl Compress for OpReceipt

§

type Compressed = Vec<u8>

§

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

§

impl Compress for OpTxEnvelope

§

type Compressed = Vec<u8>

§

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

§

impl Compress for PruneCheckpoint

§

type Compressed = Vec<u8>

§

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

§

impl Compress for StageCheckpoint

§

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

§

impl Compress for StorageTrieEntry

§

impl Compress for StoredNibbles

§

impl Compress for StoredNibblesSubKey

§

impl Compress for AccountBeforeTx

§

impl Compress for CompactU256

§

impl Compress for IntegerList

§

impl Compress for StaticFileBlockWithdrawals

§

impl Compress for StoredBlockBodyIndices

§

impl Compress for StoredBlockWithdrawals

§

impl Compress for ClientVersion

§

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

§

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

§

impl<T> Compress for T
where T: ScaleValue + Encode + Sync + Send + Debug,

§

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