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 个直接使用)
365KB
4K SLoC
模块 :: wca
用于创建 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