aoc-utils 0.2.1

A minimal set of utils for writing Advent of Code solutions
Documentation
use std::fs::File;
use std::io::{BufReader, Error, ErrorKind, Stdin};
use std::path::Path;

pub type FileReader = BufReader<File>;
pub type StdinReader = BufReader<Stdin>;

pub fn file_reader<P: AsRef<Path>>(path: P) -> std::io::Result<FileReader> {
    let file = File::open(path)?;
    let meta = file.metadata()?;

    if meta.is_dir() {
        return Err(Error::new(ErrorKind::Other, "Is a directory"));
    }

    let returned_reader = BufReader::new(file);

    Ok(returned_reader)
}

pub fn stdin_reader() -> StdinReader {
    BufReader::new(std::io::stdin())
}