#用户界面 #wtools #命令行 #cui #cli

wca

用于创建 CLI(命令行用户界面)的工具。它可以聚合外部二进制应用程序以及您用您的语言编写的函数。

17 个重大版本

新功能 0.20.0 2024 年 8 月 16 日
0.19.0 2024 年 6 月 29 日
0.18.0 2024 年 5 月 31 日
0.15.0 2024 年 3 月 26 日
0.1.0 2021 年 10 月 1 日

#498命令行界面

每月 23 次下载
4 个 crate 中使用 (3 个直接使用)

MIT 许可证

365KB
4K SLoC

模块 :: wca

experimental rust-status docs.rs Open in Gitpod discord

用于创建 CLI(命令行用户界面)的工具。它可以聚合外部二进制应用程序以及您用您的语言编写的函数。

示例

#[ cfg( not( feature = "no_std" ) ) ]
{
    use wca::{ VerifiedCommand, Context, Type };

    fn main()
    {

      let ca = wca::CommandsAggregator::former()
      .command( "echo" )
        .hint( "prints all subjects and properties" )
        .subject().hint( "Subject" ).kind( Type::String ).optional( true ).end()
        .property( "property" ).hint( "simple property" ).kind( Type::String ).optional( true ).end()
        .routine( | o : VerifiedCommand | { println!( "= Args\n{:?}\n\n= Properties\n{:?}\n", o.args, o.props ) } )
        .end()
      .command( "error" )
        .hint( "prints all subjects and properties" )
        .subject().hint( "Error message" ).kind( Type::String ).optional( true ).end()
        .routine( | o : VerifiedCommand | { println!( "Returns an error" ); Err( format!( "{}", o.args.get_owned::< String >( 0 ).unwrap_or_default() ) ) } )
        .end()
      .command( "exit" )
        .hint( "just exit" )
        .routine( || { println!( "exit" ); std::process::exit( 0 ) } )
        .end()
      .perform();

      let args = std::env::args().skip( 1 ).collect::< Vec< String > >();
      ca.perform( args ).unwrap();

    }
}

添加到您的项目中

cargo add wca

从仓库尝试使用

git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/wca_trivial
cargo run

依赖项

~4MB
~67K SLoC