pub struct AnalysisConfig {
pub split_groups: Vec<SplitComparison>,
pub compare_groups: Vec<CustomComparison>,
}
Expand description
Configuration for analysis operations and output grouping.
Defines how field groups should be compared and analyzed between each other, to find the most optimal bit layout to use for the data.
Fields§
§split_groups: Vec<SplitComparison>
Compare structural equivalence between different field groups. Each comparison verifies that the compared groups have identical total bits and field structure.
§Example
split_groups:
- name: colors
group_1: [colors] # Original interleaved (structure of array) RGB layout
group_2: [color_r, color_g, color_b] # array of structure layout (e.g. RRRGGGBBB)
description: Compare compression ratio of original interleaved format against grouping of colour components.
compare_groups: Vec<CustomComparison>
Compare arbitrary field groups defined through custom transformations. Each comparison defines a baseline and one or more comparison groups that should be structurally equivalent but may have different bit layouts.
§Example: Converting 7-bit colors to 8-bit
compare_groups:
- name: convert_7_to_8_bit
description: "Adjust 7-bit color channel to 8-bit by appending a padding bit."
baseline: # R, R, R
- { type: array, field: color7 } # reads all '7-bit' colours from input
comparisons:
padded_8bit: # R+0, R+0, R+0
- type: struct
fields:
- { type: field, field: color7 } # reads 1 '7-bit' colour from input
- { type: padding, bits: 1, value: 0 } # appends 1 padding bit
Trait Implementations§
Source§impl Debug for AnalysisConfig
impl Debug for AnalysisConfig
Source§impl Default for AnalysisConfig
impl Default for AnalysisConfig
Source§fn default() -> AnalysisConfig
fn default() -> AnalysisConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for AnalysisConfig
impl<'de> Deserialize<'de> for AnalysisConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for AnalysisConfig
impl RefUnwindSafe for AnalysisConfig
impl Send for AnalysisConfig
impl Sync for AnalysisConfig
impl Unpin for AnalysisConfig
impl UnwindSafe for AnalysisConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more