pub enum SetExp<Identifier> {
Set(Vec<IntExp<Identifier>>),
Range((IntExp<Identifier>, IntExp<Identifier>)),
Var(VarRef<Identifier>),
Hull(Box<SetExp<Identifier>>),
Diff(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
Union(Vec<SetExp<Identifier>>),
Inter(Vec<SetExp<Identifier>>),
SDiff(Vec<SetExp<Identifier>>),
}Expand description
Expression resulting in an set of integers value or decision variable
Variants§
Set(Vec<IntExp<Identifier>>)
Set literal specifying each of its values (i.e., {x1, …, xn})
Range((IntExp<Identifier>, IntExp<Identifier>))
Set literal specifying an inclusive range using a lower and upper bound (i.e., { i : x ≤ i ≤ y})
Var(VarRef<Identifier>)
Reference to a variable or array access
Hull(Box<SetExp<Identifier>>)
Convex hull (i.e., {i : min s ≤ i ≤ max s})
Diff(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Difference (i.e., s \ t)
Union(Vec<SetExp<Identifier>>)
Union (i.e., s1 ∪ … ∪ sn)
Inter(Vec<SetExp<Identifier>>)
Intersection (i.e., s1 ∩ … ∩ sn)
SDiff(Vec<SetExp<Identifier>>)
Symmetric difference (i.e., s1 ∆ … ∆ sn)
Trait Implementations§
impl<Identifier> StructuralPartialEq for SetExp<Identifier>
Auto Trait Implementations§
impl<Identifier> Freeze for SetExp<Identifier>where
Identifier: Freeze,
impl<Identifier> RefUnwindSafe for SetExp<Identifier>where
Identifier: RefUnwindSafe,
impl<Identifier> Send for SetExp<Identifier>where
Identifier: Send,
impl<Identifier> Sync for SetExp<Identifier>where
Identifier: Sync,
impl<Identifier> Unpin for SetExp<Identifier>where
Identifier: Unpin,
impl<Identifier> UnwindSafe for SetExp<Identifier>where
Identifier: UnwindSafe,
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