Rust Application API

The Rust application API is meant to simplify development of KubOS mission applications in Rust.

It provides the following functionality:

Examples

``` use failure::{bail, Error}; use kubos_app::; use log::;

fn main() -> Result<(), Error> { // Initialize logging logging_setup!("my-rust-app");

// GraphQL request to turn on the radio
let request = r#"mutation {
        power(state: ON) {
            success
        }
    }"#;

// Send the GraphQL request to the radio sevice
match query(&ServiceConfig::new("radio-service")?, request, Some(Duration::from_secs(1))) {
    Err(error) => bail!("Failed to communicate with radio service: {}", error),
    Ok(data) => {
        // Parse the response to verify that the operation was
        // successful
        if let Some(success) = data.get("power")
            .and_then(|power| power.get("success"))
        {
            match success.as_bool() {
                Some(true) => println!("Successfully turned on radio"),
                Some(false) => eprintln!("Failed to turn on radio"),
                None => eprintln!("Failed to fetch radio power state")
            }
        } else {
            bail!("Failed to fetch radio power state");
        }
    }
}
Ok(())

} ```