Refactor error handling
I took the approach of putting an error type within every submodules. Most of the errors can contain a String, which describe the error. Combination of errors is made through a lot of
map_err(|e| SomeError(format!("Module level error encountered: {}", e))
A simpler combination strategy could be found, since apart from the liborchestra::hosts::provider
, error semantics is rarely used. We could add an Unbounded
semantics, that would allow an easier combination of errors.