// Libraries mod action; mod args; mod parser; mod reader; mod writer; use args::Arguments; use parser::Parser; use reader::Reader; use writer::Writer; use std::io::Result; // Entry-Point fn main() -> Result<()> { // Reading the Arguments let args = Arguments::new(); // Display Status println!("Reading PDF and extracting Text Content..."); // Creating a File Reader & Reading let reader = Reader::new(&args.file_input.clone())?; let text = reader.extract(); // Display Status println!("Successfully extracted Text Content!"); println!("Parsing the PDF..."); // Creating a Parser to read the Text Content let mut parser = Parser::new(text); parser.start(); // Display Status println!("Successfully parsed the PDF!"); println!("Saving to a CSV File..."); // Creating a Writer and saving the file let writer = Writer::new(&parser.transactions, args.file_output.clone()); writer.save()?; // Display Status println!("Sucessfully Saved to {}", args.file_output); println!("Thank you for using Statement Converter!"); // It's ok! Ok(()) }