ocf 0.0.1

Open Container Specification
use std::io;
use std::fs::File;
use std::path::Path;
use serde_json;
use spec::Spec;
use runtime::RuntimeSpec;

pub fn load<P: AsRef<Path>>(p: P) -> io::Result<(Spec, RuntimeSpec)> {
    fn err(e: serde_json::Error) -> io::Error {
        match e {
            serde_json::Error::IoError(e) => e,
            e => io::Error::new(io::ErrorKind::InvalidData, e),
        }
    }
    let p = p.as_ref();
    let config = try!(File::open(p.join("config.json")));
    let runtime = try!(File::open(p.join("runtime.json")));
    Ok((
        try!(Spec::from_read(config).map_err(err)),
        try!(RuntimeSpec::from_read(runtime).map_err(err)),
    ))
}