clutils 0.0.11

A common library for building interpreter and compiler
Documentation
use std::{fs, io, path::PathBuf};

pub struct FileHandler<'f> {
    pub file_extension: Option<String>,
    pub file_name: Option<String>,
    pub file_path: &'f PathBuf,
    pub file_content: String,
}

impl<'p> FileHandler<'p> {
    pub fn new(path: &'p PathBuf) -> io::Result<Self> {
        let extension = path.extension().map(|ext| ext.to_string_lossy().to_string());
        let name = path.file_name().map(|name| name.to_string_lossy().to_string());
        let content = fs::read_to_string(&path)?;
        Ok(Self {
            file_extension: extension,
            file_name: name,
            file_content: content,
            file_path: path,
        })
    }
}