12 个版本 (4 个破坏性更新)

0.4.1 2023 年 1 月 11 日
0.4.0 2023 年 1 月 6 日
0.3.4 2023 年 1 月 3 日
0.3.1 2022 年 12 月 29 日
0.0.2 2022 年 12 月 20 日

#1215 in 命令行工具

每月 31 次下载

GPL-3.0-or-later

53KB
1K SLoC

nodeset's readme

描述

nodeset 是一个用于管理 Rust 编写的节点集的库和程序(ns)。目前可以遍历节点,计数(使用 len() 方法)它们,以折叠方式显示

    use nodeset::node::Node;
    use std::process::exit;

    let node = match Node::new("r[1-10/2,15]esw[2-8]") {
        Ok(n) => n,
        Err(e) => {
            println!("Error: {}", e);
            exit(1);
        }
    };
    println!("Node string display : {}", "r[1-10/2,15]esw[2-8]");
    println!("Node normal display : {}", node);
    println!("Node debug display  : {:?}", node);
    println!("Node count          : {}", node.len());

    // use of the iterator
    for n in node {
        print!("{} ", n);
    }

它将打印

Node string display : r[1-10/2,15]esw[2-8]
Node normal display : r[1-10/2,15]esw[2-8]
Node debug display  : Node { name: "r{}esw{}", sets: [RangeSet { set: [Range { start: 1, end: 10, step: 2, pad: 0, curr: 1 }, Range { start: 15, end: 15, step: 1, pad: 0, curr: 15 }], curr: 0 }, RangeSet { set: [Range { start: 2, end: 8, step: 1, pad: 0, curr: 2 }], curr: 0 }], values: [(0, 0), (0, 0)], first: true }
Node count          : 64
r1esw2 r1esw3 r1esw4 r1esw5 r1esw6 r1esw7 r1esw8 r3esw2 r3esw3 r3esw4 r3esw5 r3esw6 r3esw7 r3esw8 r5esw2 r5esw3 r5esw4 r5esw5 r5esw6 r5esw7 r5esw8 r7esw2 r7esw3 r7esw4 r7esw5 r7esw6 r7esw7 r7esw8 r9esw2 r9esw3 r9esw4 r9esw5 r9esw6 r9esw7 r9esw8 r15esw2 r15esw3 r15esw4 r15esw5 r15esw6 r15esw7 r15esw8

或者您可以使用 node_to_vec_string() 函数直接将节点表示展开为字符串向量

use nodeset::node::{node_to_vec_string};

let v = node_to_vec_string("r[1-6/2]esw[1,3,5]-port[23-24]").unwrap();
assert_eq!(v, ["r1esw1-port23", "r1esw1-port24", "r1esw3-port23", "r1esw3-port24", "r1esw5-port23", "r1esw5-port24", "r3esw1-port23", "r3esw1-port24", "r3esw3-port23", "r3esw3-port24", "r3esw5-port23", "r3esw5-port24", "r5esw1-port23", "r5esw1-port24", "r5esw3-port23", "r5esw3-port24", "r5esw5-port23", "r5esw5-port24"]);

ns

ns 是一个用于管理节点集(s)的简单基本命令行工具。使用 -h--help 获取可用的命令。

请参阅代码根目录中的 INSTALL.md 文件,了解如何安装此软件包的说明。

Rust 相关项目

依赖项

~3.5–5MB
~88K SLoC