pub enum ComparisonOperator {
Ne,
Lt,
Le,
Eq,
Ge,
Gt,
}Expand description
§Comparison Operators.
This enum holds a comparison operator — !=, <, <=, ==, >=, > —
that can be used to programmatically compare two values.
Variants can be parsed from string slices using FromStr or TryFrom<&str>, or
byte slices via TryFrom<&[u8]>, and converted to a string slice or byte slice
using ComparisonOperator::as_str or ComparisonOperator::as_bytes respectively.
If the serde crate feature is enabled, it can also be de/serialized
from/to its string representations.
Use ComparisonOperator::compare to thusly compare any two values (so
long as the type implements PartialOrd).
§Examples
use later_operator::ComparisonOperator;
// Parse from a string, then compare two arbitrary values.
let op = ComparisonOperator::try_from("<=").unwrap();
assert!(op.compare(&3_u8, &u8::MAX)); // 3 <= 255
// Re-stringify the operator for printing or whatever.
assert_eq!(
format!("3 {op} 255"),
"3 <= 255",
);
// Leading/trailing whitespace is ignored when parsing.
assert_eq!(
ComparisonOperator::try_from("==").unwrap(),
ComparisonOperator::try_from(" ==\n").unwrap(),
);
// But the value has to make sense or it will fail.
assert!(ComparisonOperator::try_from("~").is_err());When the optional serde crate feature is enabled, ComparisonOperator can be de/serialized as a string too:
use later_operator::ComparisonOperator;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
struct AffectedVersion {
operator: ComparisonOperator,
version: String,
}Variants§
Ne
§Not Equal To.
Lt
§Less Than.
Le
§Less Than or Equal To.
Eq
§Equal To.
Ge
§Greater Than or Equal To.
Gt
§Greater Than.
Implementations§
source§impl ComparisonOperator
impl ComparisonOperator
source§impl ComparisonOperator
impl ComparisonOperator
sourcepub const fn is_ne(self) -> bool
pub const fn is_ne(self) -> bool
§Is Not Equal?
Returns true for ComparisonOperator::Ne.
sourcepub const fn is_lt(self) -> bool
pub const fn is_lt(self) -> bool
§Is Less Than?
Returns true for ComparisonOperator::Lt.
sourcepub const fn is_le(self) -> bool
pub const fn is_le(self) -> bool
§Is Less Than/Equal To?
Returns true for ComparisonOperator::Le.
sourcepub const fn is_eq(self) -> bool
pub const fn is_eq(self) -> bool
§Is Equal?
Returns true for ComparisonOperator::Eq.
sourcepub const fn is_ge(self) -> bool
pub const fn is_ge(self) -> bool
§Is Greater Than/Equal To?
Returns true for ComparisonOperator::Ge.
sourcepub const fn is_gt(self) -> bool
pub const fn is_gt(self) -> bool
§Is Greater Than?
Returns true for ComparisonOperator::Gt.
source§impl ComparisonOperator
impl ComparisonOperator
sourcepub fn compare<T: PartialOrd>(self, lhs: &T, rhs: &T) -> bool
pub fn compare<T: PartialOrd>(self, lhs: &T, rhs: &T) -> bool
§Compare.
Compare lhs to rhs using a given operator.
§Examples
use later_operator::ComparisonOperator;
let a: u32 = 50;
let b: u32 = 60;
assert_eq!(ComparisonOperator::Ne.compare(&a, &b), true); // a != b
assert_eq!(ComparisonOperator::Lt.compare(&a, &b), true); // a < b
assert_eq!(ComparisonOperator::Le.compare(&a, &b), true); // a <= b
assert_eq!(ComparisonOperator::Eq.compare(&a, &b), false); // a == b
assert_eq!(ComparisonOperator::Ge.compare(&a, &b), false); // a >= b
assert_eq!(ComparisonOperator::Gt.compare(&a, &b), false); // a > bTrait Implementations§
source§impl AsRef<[u8]> for ComparisonOperator
impl AsRef<[u8]> for ComparisonOperator
source§impl AsRef<str> for ComparisonOperator
impl AsRef<str> for ComparisonOperator
source§impl Borrow<str> for ComparisonOperator
impl Borrow<str> for ComparisonOperator
source§impl Clone for ComparisonOperator
impl Clone for ComparisonOperator
source§fn clone(&self) -> ComparisonOperator
fn clone(&self) -> ComparisonOperator
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for ComparisonOperator
impl Debug for ComparisonOperator
source§impl<'de> Deserialize<'de> for ComparisonOperator
Available on crate feature serde only.
impl<'de> Deserialize<'de> for ComparisonOperator
serde only.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>,
source§impl Display for ComparisonOperator
impl Display for ComparisonOperator
source§impl FromStr for ComparisonOperator
impl FromStr for ComparisonOperator
source§impl Hash for ComparisonOperator
impl Hash for ComparisonOperator
source§impl Ord for ComparisonOperator
impl Ord for ComparisonOperator
source§fn cmp(&self, other: &ComparisonOperator) -> Ordering
fn cmp(&self, other: &ComparisonOperator) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq<ComparisonOperator> for str
impl PartialEq<ComparisonOperator> for str
source§impl PartialEq<str> for ComparisonOperator
impl PartialEq<str> for ComparisonOperator
source§impl PartialEq for ComparisonOperator
impl PartialEq for ComparisonOperator
source§impl PartialOrd for ComparisonOperator
impl PartialOrd for ComparisonOperator
source§impl Serialize for ComparisonOperator
Available on crate feature serde only.
impl Serialize for ComparisonOperator
serde only.source§impl TryFrom<&[u8]> for ComparisonOperator
impl TryFrom<&[u8]> for ComparisonOperator
source§impl TryFrom<&str> for ComparisonOperator
impl TryFrom<&str> for ComparisonOperator
impl Copy for ComparisonOperator
impl Eq for ComparisonOperator
impl StructuralPartialEq for ComparisonOperator
Auto Trait Implementations§
impl Freeze for ComparisonOperator
impl RefUnwindSafe for ComparisonOperator
impl Send for ComparisonOperator
impl Sync for ComparisonOperator
impl Unpin for ComparisonOperator
impl UnwindSafe for ComparisonOperator
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)