MCPcopy Index your code
hub / github.com/TPAFS/transparency-data / validate_csv

Function validate_csv

validator/src/main.rs:537–566  ·  view source on GitHub ↗
(cols: &[DataCol], file_path: &str)

Source from the content-addressed store, hash-verified

535}
536
537fn validate_csv(cols: &[DataCol], file_path: &str) -> Result<(), Box<dyn Error>> {
538 // file handle and reader
539 let file = File::open(file_path)?;
540 let mut reader = csv::Reader::from_reader(file);
541 let mut line: u32 = 1;
542
543 // Collect intended headers
544 let mut intended_headers: Vec<String> = vec![];
545 for col in cols {
546 intended_headers.push(col.name.to_string())
547 }
548 // Validate headers
549 if let Err(err) = validate_headers(&mut reader, intended_headers) {
550 return Err(From::from(err));
551 }
552
553 // Check each result, return read errors
554 for result in reader.records() {
555 line += 1;
556 match result {
557 Err(err) => return Err(From::from(err)),
558 Ok(record) => {
559 if let Err(err) = validate_record(record, line, cols) {
560 return Err(From::from(err));
561 };
562 }
563 }
564 }
565 return Ok(());
566}
567
568fn validate_headers(
569 reader: &mut csv::Reader<std::fs::File>,

Callers 1

mainFunction · 0.85

Calls 2

validate_headersFunction · 0.85
validate_recordFunction · 0.85

Tested by

no test coverage detected