outer_cgi 0.3.1

A barebones CGI/FCGI wrapper.
Documentation
use std::collections::HashMap;

use outer_cgi::IO;

fn init(max_parallelism: u32) {
    eprintln!("outer_cgi demo script started with max parallelism: {}",
              max_parallelism);
}

fn handler(io: &mut dyn IO, env: HashMap<String,String>) -> anyhow::Result<i32> {
    io.write_all(b"Content-type: text/plain; charset=utf-8\n\n\
                   Hello world!\n\n")?;
    let mut kvs: Vec<(String,String)> = env.into_iter().collect();
    kvs.sort_by(|a,b| return a.0.cmp(&b.0));
    for (key, value) in kvs {
        io.write_all(format!("{}={}\n", key, value).as_bytes())?;
    }
    io.flush().unwrap();
    Ok(0)
}

pub fn main() {
    outer_cgi::main(init, handler)
}