pub struct LogicalConstraint {
pub constraint_id: String,
pub constraint_type: ConstraintType,
pub description: String,
pub left_operand: String,
pub right_operand: Option<String>,
pub operator_value: Option<String>,
pub is_required: bool,
pub error_message: String,
}Expand description
A single logical constraint
Fields§
§constraint_id: StringUnique identifier
constraint_type: ConstraintTypeType of constraint
description: StringHuman-readable description
left_operand: StringLeft operand (key or value)
right_operand: Option<String>Right operand (optional, for unary constraints)
operator_value: Option<String>Operator value (for type/pattern checks)
is_required: boolIs this constraint required?
error_message: StringError message if violated
Implementations§
Source§impl LogicalConstraint
impl LogicalConstraint
Sourcepub fn new(
constraint_id: String,
constraint_type: ConstraintType,
left_operand: String,
) -> Self
pub fn new( constraint_id: String, constraint_type: ConstraintType, left_operand: String, ) -> Self
Create a new constraint
Sourcepub fn equality(left: &str, right: &str, description: &str) -> Self
pub fn equality(left: &str, right: &str, description: &str) -> Self
Create an equality constraint
Sourcepub fn greater(left: &str, right: &str, description: &str) -> Self
pub fn greater(left: &str, right: &str, description: &str) -> Self
Create a greater-than constraint
Sourcepub fn type_check(operand: &str, expected_type: &str, description: &str) -> Self
pub fn type_check(operand: &str, expected_type: &str, description: &str) -> Self
Create a type check constraint
Sourcepub fn with_description(self, description: &str) -> Self
pub fn with_description(self, description: &str) -> Self
Set description
Sourcepub fn with_error_message(self, message: &str) -> Self
pub fn with_error_message(self, message: &str) -> Self
Set error message
Sourcepub fn with_required(self, required: bool) -> Self
pub fn with_required(self, required: bool) -> Self
Set required flag
Trait Implementations§
Source§impl Clone for LogicalConstraint
impl Clone for LogicalConstraint
Source§fn clone(&self) -> LogicalConstraint
fn clone(&self) -> LogicalConstraint
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 Debug for LogicalConstraint
impl Debug for LogicalConstraint
Source§impl<'de> Deserialize<'de> for LogicalConstraint
impl<'de> Deserialize<'de> for LogicalConstraint
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
Source§impl Display for LogicalConstraint
impl Display for LogicalConstraint
Auto Trait Implementations§
impl Freeze for LogicalConstraint
impl RefUnwindSafe for LogicalConstraint
impl Send for LogicalConstraint
impl Sync for LogicalConstraint
impl Unpin for LogicalConstraint
impl UnwindSafe for LogicalConstraint
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