use crate::macro_generate_files;
use crate::models::model_params::FileGenerationParams;
use csv::Reader;
use std::io;
pub fn generate_from_csv(path: &str) -> io::Result<()> {
let mut reader = Reader::from_path(path)?;
for result in reader.records() {
let record = result?;
let params = FileGenerationParams {
author: record.get(0).map(ToString::to_string),
build: record.get(1).map(ToString::to_string),
categories: record.get(2).map(ToString::to_string),
description: record.get(3).map(ToString::to_string),
documentation: record.get(4).map(ToString::to_string),
edition: record.get(5).map(ToString::to_string),
email: record.get(6).map(ToString::to_string),
homepage: record.get(7).map(ToString::to_string),
keywords: record.get(8).map(ToString::to_string),
license: record.get(9).map(ToString::to_string),
name: record.get(10).map(ToString::to_string),
output: record.get(11).map(ToString::to_string),
readme: record.get(12).map(ToString::to_string),
repository: record.get(13).map(ToString::to_string),
rustversion: record.get(14).map(ToString::to_string),
version: record.get(15).map(ToString::to_string),
website: record.get(16).map(ToString::to_string),
};
macro_generate_files!(params.clone())
.map_err(|e| io::Error::new(io::ErrorKind::Other, e))?;
}
Ok(())
}