7 个版本
0.2.5 | 2022 年 2 月 26 日 |
---|---|
0.2.4 | 2022 年 2 月 1 日 |
0.2.3 | 2022 年 1 月 25 日 |
0.1.0 | 2022 年 1 月 7 日 |
#2357 in Rust 模式
60 每月下载量
用于 3 crates
18KB
289 行
nagios-range
这是一个非常小的 Rust 库,它简单地解析 Nagios 范围,正如在 Nagios 开发指南 中定义的那样。
示例
use nagios_range::{NagiosRange, Error};
fn main() -> Result<(), Error>{
let range = NagiosRange::from("@~:10");
assert!(range.is_ok());
assert!(range?.checks_inside());
assert!(range?.start_is_infinite());
assert!(range?.check(5.0));
}
lib.rs
:
此 crate 提供了简单的类型,用于解析和操作 Nagios 范围,正如在 Nagios 开发指南 中所述。
主要类型 [NagiosRange] 的行为类似于 std::ops::RangeInclusive,但还提供了实现 Nagios 范围扩展行为的函数,即检查一个值是否在范围内或范围外,这基本上与 [std::ops::RangeInclusive::contains()] 方法相同,但扩展了相反的行为。
示例
从字面字符串创建 NagiosRange
。
use nagios_range::{NagiosRange, Error};
fn main() -> Result<(), Error> {
let range = NagiosRange::from("@0:10");
assert!(range.is_ok());
Ok(())
}
检查 NagiosRange
是否检查其范围内的值。
use nagios_range::{NagiosRange, Error};
fn main() -> Result<(), Error> {
// This is an "inside" range.
let range = NagiosRange::from("@0:10")?;
assert!(range.checks_inside());
assert!(!range.checks_outside());
Ok(())
}
检查 NagiosRange
的起点(下界)是否为负无穷大。
use nagios_range::{NagiosRange, Error};
fn main() -> Result<(), Error> {
let range = NagiosRange::from("@~:10")?;
assert!(range.start_is_infinite());
Ok(())
}
与 Nagios 检查插件一起使用时最重要的函数:检查值是否相对于其 [CheckType] 被范围“包含”。
use nagios_range::{NagiosRange, Error};
fn main() -> Result<(), Error> {
let range = NagiosRange::from("@~:10")?;
assert!(range.check(5.0));
let range = NagiosRange::from("20")?;
assert!(range.check(30.0));
Ok(())
}