umpl 1.1.0

Umpl is a a meme language that is a mix of c like languages and lisp like languages.
Documentation
use crate::cli::EASY_MODE;
use std::{fmt::Display, process::exit};

pub fn error<T: Display>(line: i32, message: T) -> ! {
    let where_ = "";
    let message = message.to_string();
    let mut message = message.as_str();
    unsafe {
        if EASY_MODE {
        } else {
            message = "Segmentation fault (core dumped)";
        }
    }
    if message.is_empty() {
        message = "Segmentation fault (core dumped)";
    }
    eprintln!("[line: {line}], Error{where_}: {message}");
    exit(1);
}

#[allow(clippy::module_name_repetitions)]
pub fn arg_error<T: Display>(
    num_args: u32,
    given_args: u32,
    function: T,
    at_least: bool,
    line: i32,
) {
    if at_least {
        if num_args < given_args {
            error(
                line,
                format!("{function} requires at least {num_args} arguments"),
            );
        }
    } else if num_args != given_args {
        error(line, format!("{function} requires {num_args} arguments"));
    }
}