datagen 0.1.4

An easy to use tool to generate fake data in bulk and export it as Avro, Parquet or directly into your database as tables
Documentation
use std::{io, result};

pub type DataGenResult<T> = result::Result<T, DataGenError>;

#[derive(Fail, Debug)]
pub enum DataGenError {
    #[fail(display = "File IO Error")]
    FileIO(#[cause] io::Error),

    #[fail(display = "CSV error")]
    Csv(#[cause] csv::Error),

    #[fail(display = "Avro error")]
    Avro(#[cause] failure::Error),

    #[fail(display = "Json error")]
    Json(#[cause] serde_json::Error),

    #[fail(display = "SerDe error")]
    SerDe(#[cause] serde_yaml::Error),

    #[fail(display = "{}", message)]
    WeirdCase { message: String },
}

macro_rules! from_error {
    ($from:ty, $to:path) => {
        impl From<$from> for DataGenError {
            fn from(error: $from) -> Self {
                $to(error)
            }
        }
    };
}

from_error!(csv::Error, DataGenError::Csv);
from_error!(serde_yaml::Error, DataGenError::SerDe);
from_error!(failure::Error, DataGenError::Avro);
from_error!(serde_json::Error, DataGenError::Json);
from_error!(io::Error, DataGenError::FileIO);