tprint 1.0.1

A simple crate to print tabular data
Documentation
use tprint::{TPrint, TPrintAlign, TPrintOutputFile, TPrintBordersUnicode};
use std::cell::RefCell;
use std::rc::Rc;
use std::fs;
use std::env;
use std::io;
use std::time::UNIX_EPOCH;

const OUT_FILE: &str = "/tmp/tprint.txt";
const DEFAULT_PATH: &str = "/tmp";
const FILE_SYMBOL: &str = "\u{1F4C4}";
const DIR_SYMBOL: &str = "\u{1F4C1}";

fn main() -> io::Result<()> {
    let output = Rc::new(RefCell::new(TPrintOutputFile::new(OUT_FILE).unwrap()));
    let borders = Rc::new(RefCell::new(TPrintBordersUnicode {}));

    let mut f_tprint = TPrint::new_with_borders_output(borders, output, true, true, 0, 1);

    f_tprint.column_add("Type", TPrintAlign::Center, TPrintAlign::Center).
        column_add("Name", TPrintAlign::Center, TPrintAlign::Left).
        column_add("Size", TPrintAlign::Center, TPrintAlign::Right).
        column_add("Creation time", TPrintAlign::Center, TPrintAlign::Left);

    let args: Vec<String> = env::args().collect();
    let path = if args.len() > 1 { &args[1] } else { DEFAULT_PATH };

    for entry in fs::read_dir(path)? {
        let entry = entry?;
        let metadata = entry.metadata()?;
        let file_type = entry.file_type()?;
        let file_name = entry.file_name().into_string().unwrap();

        let duration_since_epoch = metadata.created()?.duration_since(UNIX_EPOCH).expect("Incorrect file datetime format");
        let secs = duration_since_epoch.as_secs();
        let file_date = chrono::DateTime::from_timestamp(secs as i64, 0)
            .map(|dt| dt.format("%Y-%m-%d %H:%M:%S").to_string())
            .unwrap_or_else(|| "Invalid timestamp".to_string());

        f_tprint.add_data(if file_type.is_dir() { DIR_SYMBOL } else { FILE_SYMBOL });
        f_tprint.add_data(file_name);
        f_tprint.add_data(metadata.len());
        f_tprint.add_data(file_date);
    }

    f_tprint.print()?;

    let output = fs::read_to_string(OUT_FILE)?;
    print!("{}", output);
    println!("Content of TPrint Output file: {}", OUT_FILE);

    Ok(())
}