file-ext 12.0.0

Collection of utility functions to work with files
Documentation
use crate::symbol::SYMBOL;

pub struct FilterString;

impl FilterString {
    pub fn is_valid_input_string(path: &str) -> Result<(), String> {
        let path = path.replace(|x : char | x.is_ascii_control(), SYMBOL.empty_string).trim().to_string();

        if path.contains(SYMBOL.whitespace) ||
            path.contains(SYMBOL.single_quote) ||
            path.contains(SYMBOL.quotation_mark) ||
            path.contains(SYMBOL.ampersand) ||
            path.contains(SYMBOL.pipe) ||
            path.contains(SYMBOL.semicolon) {
            return Err(format!("Path contains not allowed characters: whitespace, single quote, quotation mark, ampersand, pipe, semicolon. Path: {}",path))
        }

        Ok(())
    }
}