#arguments-parser #alloc #line #command #std #arg

bin+lib clip

一个不使用 std 或 alloc 的命令行解析器!

2 个版本

0.1.1 2019 年 8 月 13 日
0.1.0 2019 年 8 月 13 日

#493内存管理

Apache-2.0

10KB
207

clip

一个不使用 std 或 alloc 的命令行解析器!

为什么?

我主要做这个是为了教育目的。我从未编写过不使用 stdalloc 的库,所以我想要学习如何做。

我也认为这个库的可移植性在实现 Rusty-CI 时会很有用

示例

extern crate clip;

use clip::App;
use std::env::args;


fn main() {
    let strings = &args().collect::<Vec<String>>()[..];
    let values: Vec<&str> = strings.iter().map(|s| &**s).collect();


    let mut app = App::new(&values[1..])
                .name("name")
                .flag("--input", 1)
                .flag("--output", 1)
                .flag("--link", -1)
                ;
    app.parse();

    println!(
        "name: {}\ninput: {}\noutput: {}\nlink: {:?}",
        app.get("name")[0],
        app.get("--input")[0],
        app.get("--output")[0],
        app.get("--link"),
    )
}

无运行时依赖