5 releases
0.2.0 | Feb 8, 2024 |
---|---|
0.1.3 | Oct 5, 2023 |
0.1.2 | Jun 1, 2023 |
0.1.1 | Mar 9, 2023 |
0.1.0 | Feb 10, 2023 |
#524 in Encoding
20KB
329 lines
Later Operator
This library provides a ComparisonOperator
enum that can be used to parse, store, evaluate, and/or print Rust's relational operators: !=
, <
, <=
, ==
, >=
, >
.
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,
}
Installation
Add later_operator
to your dependencies
in Cargo.toml
, like:
[dependencies]
later_operator = "0.2.*"
License
Copyright © 2024 Blobfolio, LLC <hello@blobfolio.com>
This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
Dependencies
~215KB