tango 0.4.2

Markdown-based Literate programming in Rust, integrated with Cargo.
extern crate tango;

use std::error::Error;

pub fn main() {
    tango::process_root().unwrap_or_else(|e| {
        let mut cause: Option<&Error> = Some(&e);
        while let Some(c) = cause {
            let next_cause = c.cause();
            if next_cause.is_some() {
                println!("{}, due to", c.description());
            } else {
                println!("root error: {}", c.description());
            }
            cause = next_cause;
        }
        panic!("IO error {}", e.description());
    })
}