pub struct FormatConstraint { /* private fields */ }Expand description
A unified constraint that validates data formats and patterns.
This constraint replaces individual format constraints (PatternConstraint, EmailConstraint, UrlConstraint, CreditCardConstraint) and adds support for many additional formats.
§Examples
use term_guard::constraints::{FormatConstraint, FormatType, FormatOptions};
use term_guard::core::Constraint;
// Email validation
let email_constraint = FormatConstraint::new(
"email",
FormatType::Email,
0.95,
FormatOptions::default()
).unwrap();
// Phone number validation for US
let phone_constraint = FormatConstraint::new(
"phone",
FormatType::Phone { country: Some("US".to_string()) },
0.90,
FormatOptions::new().trim_before_check(true)
).unwrap();
// Custom regex pattern
let code_constraint = FormatConstraint::new(
"product_code",
FormatType::Regex(r"^[A-Z]{2}\d{4}$".to_string()),
1.0,
FormatOptions::default()
).unwrap();Implementations§
Source§impl FormatConstraint
impl FormatConstraint
Sourcepub fn new(
column: impl Into<String>,
format: FormatType,
threshold: f64,
options: FormatOptions,
) -> Result<Self>
pub fn new( column: impl Into<String>, format: FormatType, threshold: f64, options: FormatOptions, ) -> Result<Self>
Sourcepub fn email(column: impl Into<String>, threshold: f64) -> Result<Self>
pub fn email(column: impl Into<String>, threshold: f64) -> Result<Self>
Creates a format constraint for email validation.
Sourcepub fn url(
column: impl Into<String>,
threshold: f64,
allow_localhost: bool,
) -> Result<Self>
pub fn url( column: impl Into<String>, threshold: f64, allow_localhost: bool, ) -> Result<Self>
Creates a format constraint for URL validation.
Sourcepub fn credit_card(
column: impl Into<String>,
threshold: f64,
detect_only: bool,
) -> Result<Self>
pub fn credit_card( column: impl Into<String>, threshold: f64, detect_only: bool, ) -> Result<Self>
Creates a format constraint for credit card detection.
Sourcepub fn phone(
column: impl Into<String>,
threshold: f64,
country: Option<String>,
) -> Result<Self>
pub fn phone( column: impl Into<String>, threshold: f64, country: Option<String>, ) -> Result<Self>
Creates a format constraint for phone number validation.
Sourcepub fn postal_code(
column: impl Into<String>,
threshold: f64,
country: impl Into<String>,
) -> Result<Self>
pub fn postal_code( column: impl Into<String>, threshold: f64, country: impl Into<String>, ) -> Result<Self>
Creates a format constraint for postal code validation.
Sourcepub fn uuid(column: impl Into<String>, threshold: f64) -> Result<Self>
pub fn uuid(column: impl Into<String>, threshold: f64) -> Result<Self>
Creates a format constraint for UUID validation.
Sourcepub fn ipv4(column: impl Into<String>, threshold: f64) -> Result<Self>
pub fn ipv4(column: impl Into<String>, threshold: f64) -> Result<Self>
Creates a format constraint for IPv4 address validation.
Sourcepub fn ipv6(column: impl Into<String>, threshold: f64) -> Result<Self>
pub fn ipv6(column: impl Into<String>, threshold: f64) -> Result<Self>
Creates a format constraint for IPv6 address validation.
Sourcepub fn json(column: impl Into<String>, threshold: f64) -> Result<Self>
pub fn json(column: impl Into<String>, threshold: f64) -> Result<Self>
Creates a format constraint for JSON validation.
Trait Implementations§
Source§impl Clone for FormatConstraint
impl Clone for FormatConstraint
Source§fn clone(&self) -> FormatConstraint
fn clone(&self) -> FormatConstraint
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 FormatConstraint
impl Constraint for FormatConstraint
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 FormatConstraint
impl RefUnwindSafe for FormatConstraint
impl Send for FormatConstraint
impl Sync for FormatConstraint
impl Unpin for FormatConstraint
impl UnwindSafe for FormatConstraint
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