#nagios #parser

nagios-range

提供了解析和操作 Nagios 范围的类型

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 模式

Download history 42/week @ 2024-03-11 41/week @ 2024-03-18 42/week @ 2024-03-25 22/week @ 2024-04-01 23/week @ 2024-04-08 26/week @ 2024-04-15 10/week @ 2024-04-29 26/week @ 2024-05-06 9/week @ 2024-05-13 10/week @ 2024-05-20 40/week @ 2024-05-27 9/week @ 2024-06-03 12/week @ 2024-06-10 14/week @ 2024-06-17 10/week @ 2024-06-24

60 每月下载量
用于 3 crates

MIT 许可证

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(())
}

无运行时依赖项