Skip to content

encabulators/machinebox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Machine Box Client

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.

Modules

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

Usage

To use features, simply call the appropriate function on the corresponding box:

extern crate 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");
    if let Ok(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.

Notes

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.

About

Rust client SDK for machinebox.io boxes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages