envl 0.9.0

load .envl and .envlconf
Documentation
use std::io::Error;

use envl_utils::{error::EnvlError as EnvlVarsError, types::Position};

#[derive(Debug, Clone)]
pub struct EnvlLibError {
    pub message: String,
}

#[derive(Debug)]
pub enum ErrorKind {
    Vars(EnvlVarsError),
    Io(Error),
    Lib(EnvlLibError),
}

#[derive(Debug)]
pub struct EnvlError {
    pub message: String,
    pub position: Option<Position>,
    pub kind: ErrorKind,
}

pub fn convert_envl_vars_error(err: EnvlVarsError) -> EnvlError {
    EnvlError {
        message: err.message.to_string(),
        position: None,
        kind: ErrorKind::Vars(err),
    }
}

pub fn convert_io_error(err: Error) -> EnvlError {
    EnvlError {
        message: err.to_string().clone(),
        position: None,
        kind: ErrorKind::Io(err),
    }
}

pub fn convert_envl_lib_error(err: EnvlLibError) -> EnvlError {
    EnvlError {
        message: err.message.to_string(),
        position: None,
        kind: ErrorKind::Lib(err),
    }
}