use std::path::{Path, PathBuf};
use std::{fs, io};

pub fn read_filenames_from_dir<P>(path: P) -> Result<Vec<PathBuf>, io::Error> 
    where P: AsRef<Path>
{
    let paths = try!(fs::read_dir(path));
    paths.into_iter().map(|x| x.map(|p| p.path())).collect()
}

fn main() {
    println!("{:?}", read_filenames_from_dir("/etc"));
}
