| Crates.io | wca |
| lib.rs | wca |
| version | 0.30.0 |
| created_at | 2021-10-01 12:06:21.935083+00 |
| updated_at | 2025-09-23 13:44:46.866438+00 |
| description | The tool to make CLI ( commands user interface ). It is able to aggregate external binary applications, as well as functions, which are written in your language. |
| homepage | https://github.com/Wandalen/wTools/tree/master/module/move/wca/readme.md |
| repository | https://github.com/Wandalen/wTools/tree/master/module/move/wca |
| max_upload_size | |
| id | 459106 |
| size | 440,451 |
The tool to make CLI ( commands user interface ). It is able to aggregate external binary applications, as well as functions, which are written in your language.
#[ cfg( not( feature = "no_std" ) ) ]
{
use wca::{ VerifiedCommand, 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: Vec< String > = std::env::args().skip( 1 ).collect();
ca.perform( args ).unwrap();
}
}
cargo add wca
git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/wca_trivial
cargo run