whynot 0.1.1

Rust ↔ PHP bridge: call PHP functions from Rust, capture return values, output, and exceptions.
Documentation
use whynot::RuntimeConfig;

#[cfg(feature = "async_tokio")]
use whynot::async_tokio;

#[cfg(feature = "async_tokio")]
#[tokio::main]
async fn main() {
    let cfg = RuntimeConfig { debug: false, ..Default::default() };

    let greet = async_tokio::call_async(cfg.clone(), "greet".to_string(), vec!["Milton".into()])
        .await
        .unwrap();
    println!("greet.result = {:?}", greet.result);
    println!("greet.output = {:?}", greet.output);

    let add = async_tokio::call_async(cfg.clone(), "add".to_string(), vec![7.into(), 9.into()])
        .await
        .unwrap();
    println!("add.result = {:?}", add.result);

    let eval = async_tokio::eval_async(cfg.clone(), "print('tokio eval'); return 123;".to_string())
        .await
        .unwrap();
    println!("eval.result = {:?}", eval.result);
    println!("eval.output = {:?}", eval.output);
}

#[cfg(not(feature = "async_tokio"))]
fn main() {
    eprintln!("Enable feature `async_tokio` to run this example:\n  cargo run --example tokio_async --features async_tokio");
}