use error::*; use std::fmt::Debug; use value::Value; use std::collections::HashMap; /// Describes a generic _source_ of configuration properties. pub trait Source: Debug { fn clone_into_box(&self) -> Box; /// Collect all configuration properties available from this source and return /// a HashMap. fn collect(&self) -> Result>; } impl Clone for Box { fn clone(&self) -> Box { self.clone_into_box() } }