pub trait System<F, E, I>{
// Required methods
fn entries(&self, abs_root: &Path, rel_root: &Path) -> I;
fn metadata(&self, path: &Path) -> MyResult<Metadata<F>>;
fn get_mask(&self, uid: uid_t, gid: gid_t) -> u32;
fn find_user(&self, uid: uid_t) -> Option<Rc<String>>;
fn find_group(&self, gid: gid_t) -> Option<Rc<String>>;
}