machinebox is a Rust client for the machinebox.io suite of machines. It provides a simple means of accessing the machines, exposing common functionality to all machines as well as box-specific functionality. Each "box" or "box type" is separated into its own module and struct.
The following is a list of the modules corresponding to machinebox types and which ones have been implemented so far:
- Textbox
- Facebox
- Tagbox
- Videobox
- Nudebox
- Suggestionbox
- Fakebox
To use features, simply call the appropriate function on the corresponding box:
externcrate machinebox;use machinebox::textbox::Textbox;use machinebox::BoxClient;// Make sure you actually have a textbox running here...let tb = Textbox::new("http://localhost:8080");let analysis = tb.check("Pay William $200 tomorrow");ifletOk(res) = analysis {let money = res.sentences[0].entities.iter().find(|e| e.entity_type == "money");match money {Some(val) => println!("You specified {}", val.text),None => println!("You didn't indicate money"),}}The above code will analyse the phrase Pay William $200 tomorrow, flagging
tomorrow as a date and 200 as an entity of type money.
If you run the tests locally, you'll need RUST_TEST_THREADS=1 because the mock HTTP server
persists throughout the lifetime of the test run.