1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
use ::abc::{Loader, LoadResult, LoadError};

pub type GroupLoader = Vec<Box<Loader>>;

impl Loader for Vec<Box<Loader>> {
    fn load(&self, name: &str) -> LoadResult {
        for loader in self {
            return match loader.load(name) {
                Err(LoadError::NotFound)    => continue,
                Err(err)                    => Err(err),
                Ok(res)                     => Ok(res),
            }
        }
        Err(LoadError::NotFound)
    }
}