csvtoron

Crates.iocsvtoron
lib.rscsvtoron
version0.2.0
sourcesrc
created_at2022-01-30 13:04:44.283868
updated_at2022-01-30 13:04:44.283868
descriptionconverting csv file to the ron format
homepage
repositoryhttps://github.com/hartmut/csvtoron
max_upload_size
id524031
size13,371
Hartmut (hartmut)

documentation

https://docs.rs/csvtoron

README

csvtoron

Project to automatically convert csv files to ron. Inspired by the project toml_to_ron.

For usage take a look into the example directory or just call

to_ron(filename)

in the library. The return value is

Result<(), String>

For issues and problems please go to github.

Example

use std::env;
use csvtoron::to_ron;

fn main() -> Result<(), String> {
    let args: Vec<String> = env::args().collect();
    if args.len() != 2 {
        return Err("Usage is : ./csvtoron <filename>".to_string());
    }
    let filename = args.get(1).unwrap();
    to_ron(filename)
}

Input

  • a header line is needed
  • the program determines the seperator, in later versions it will be possible to define it

Output

The the cells will be interpreted as f64, u64 and string and put into the output file acordingly.

The Output format is as follows:

(
    content: [
        { 
            "head of column 1": "String value of line 1 column 1",
            "head of column 2": 0.426, //f64
            "head of column 3": "String Value",
            "head of column 4": 713, //u64
        }
        {
            content of second line
        }
        ..
    ]
)

Version 1

  • currently the field name is serialized as a string but not as a structure element name, so it is more difficult to automatically consume one ron element/csv line into a record
  • create documentation
  • test example with fixed field sizes
  • writing tests for the variants - fixed cell, comma and semicolon separated lists
  • after transformation of one line the output should be deseriazable as a structure, this means no quotation marks on the name of structure elements

Version 2

  • modify the output so that the cell header will be written without a hyphen so that you can import a record as a struct.
  • allow json output, then this project needs to be migrated to anonther project
Commit count: 15

cargo fmt