pub struct HistogramConstraint { /* private fields */ }Expand description
A constraint that analyzes value distribution in a column and applies custom assertions.
This constraint computes a histogram of value frequencies and allows custom assertion functions to validate the distribution characteristics.
§Examples
use term_guard::constraints::{HistogramConstraint, Histogram};
use term_guard::core::Constraint;
use std::sync::Arc;
// Check that no single value dominates
let constraint = HistogramConstraint::new("status", Arc::new(|hist: &Histogram| {
hist.most_common_ratio() < 0.5
}));
// Verify distribution has expected number of categories
let constraint = HistogramConstraint::new("category", Arc::new(|hist| {
hist.bucket_count() >= 5 && hist.bucket_count() <= 10
}));Implementations§
Source§impl HistogramConstraint
impl HistogramConstraint
Sourcepub fn new(column: impl Into<String>, assertion: HistogramAssertion) -> Self
pub fn new(column: impl Into<String>, assertion: HistogramAssertion) -> Self
Creates a new histogram constraint.
§Arguments
column- The column to analyzeassertion- The assertion function to apply to the histogram
Sourcepub fn new_with_description(
column: impl Into<String>,
assertion: HistogramAssertion,
description: impl Into<String>,
) -> Self
pub fn new_with_description( column: impl Into<String>, assertion: HistogramAssertion, description: impl Into<String>, ) -> Self
Creates a new histogram constraint with a description.
§Arguments
column- The column to analyzeassertion- The assertion function to apply to the histogramdescription- A description of what the assertion checks
Trait Implementations§
Source§impl Clone for HistogramConstraint
impl Clone for HistogramConstraint
Source§fn clone(&self) -> HistogramConstraint
fn clone(&self) -> HistogramConstraint
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Constraint for HistogramConstraint
impl Constraint for HistogramConstraint
Source§fn evaluate<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = Result<ConstraintResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn evaluate<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = Result<ConstraintResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Evaluates the constraint against the data in the session context. Read more
Source§fn column(&self) -> Option<&str>
fn column(&self) -> Option<&str>
Returns the column this constraint operates on (if single-column). Read more
Source§fn metadata(&self) -> ConstraintMetadata
fn metadata(&self) -> ConstraintMetadata
Returns the metadata associated with this constraint. Read more
Auto Trait Implementations§
impl Freeze for HistogramConstraint
impl !RefUnwindSafe for HistogramConstraint
impl Send for HistogramConstraint
impl Sync for HistogramConstraint
impl Unpin for HistogramConstraint
impl !UnwindSafe for HistogramConstraint
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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