Skip to main content

VariableCodecSpec

Type Alias VariableCodecSpec 

Source
pub type VariableCodecSpec = Codec;
👎Deprecated since 0.6.0:

renamed to Codec; use Codec instead

Expand description

Deprecated alias for Codec. Use Codec instead.

§Deprecation Notice

This type has been renamed to Codec for brevity and consistency. This alias will be removed in version 1.0.0.

Aliased Type§

pub enum VariableCodecSpec {
Show 13 variants Gamma, Delta, Unary, Rice { log2_b: Option<u8>, }, Zeta { k: Option<u64>, }, Golomb { b: Option<u64>, }, Omega, Pi { k: Option<u64>, }, ExpGolomb { k: Option<u64>, }, VByteLe, VByteBe, Auto, Explicit(Codes),
}

Variants§

§

Gamma

Elias γ-coding. A simple, universal code that is effective for integers with a distribution skewed towards small values. It is the default codec for the iterator-based builder, which cannot perform data analysis.

§

Delta

Elias δ-coding. A universal code that is generally more efficient than Gamma for larger integer values.

§

Unary

Unary coding. Encodes an integer n as n zeros followed by a one. It is only efficient for extremely small values (e.g., 0, 1, 2).

§

Rice

Rice-coding with a parameter log2_b. This code is optimal for data with a geometric distribution.

  • If log2_b is Some(val), the specified parameter is used.
  • If log2_b is None, an optimal parameter is estimated by analyzing the entire dataset.

Fields

§log2_b: Option<u8>
§

Zeta

Boldi-Vigna ζ-coding with a parameter k. This code is effective for data with a power-law distribution, common in web graphs and social networks.

  • If k is Some(val), the specified parameter is used (k > 0).
  • If k is None, an optimal parameter is estimated by analyzing the entire dataset.

Fields

§

Golomb

Golomb-coding with a parameter b. This is a generalization of Rice coding and is also suitable for geometric distributions.

  • If b is Some(val), the specified parameter is used (b > 0).
  • If b is None, an optimal parameter is estimated by analyzing the entire dataset.

Fields

§

Omega

Elias-Fano ω-coding. A universal code.

§

Pi

Streamlined Apostolico–Drovandi π code with a parameter k.

  • If k is Some(val), the specified parameter is used (k > 0).
  • If k is None, an optimal parameter is estimated by analyzing the entire dataset.

Fields

§

ExpGolomb

Elias-Fano Exponential-Golomb coding with a parameter k.

  • If k is Some(val), the specified parameter is used.
  • If k is None, an optimal parameter is estimated by analyzing the entire dataset.

Fields

§

VByteLe

VByte encoding with Little-Endian byte order. This is often one of the fastest codecs for decoding, though it may not offer the best compression.

§

VByteBe

VByte encoding with Big-Endian byte order.

§

Auto

Automatically select the best variable-length code based on the data.

When this option is used, the builder performs a statistical analysis on the entire input dataset to determine which codec and parameterization provides the best compression ratio.

§Note

This option is not supported for the iterator-based builder, as it requires pre-analyzing the data.

§

Explicit(Codes)

Use an explicitly provided Codes variant from dsi-bitstream.

This is for advanced use cases where the user has already constructed a Codes enum instance.