use crate::{function, value::Value};
use displaydoc::Display as DisplayDoc;
use std::result;
pub type Result<T> = result::Result<T, Error>;
#[derive(Debug, DisplayDoc, thiserror::Error)]
pub enum Error {
ValueSerializationError(String),
InvalidType,
InvalidCast(Value, String),
UnexpectedValueType(Value, String),
UnknownValue(String),
UserFunctionError(String, function::FunctionError),
UnknownUserFunction(String),
}
impl Error {
pub fn ser(error_msg: impl Into<String>) -> Self {
Error::ValueSerializationError(error_msg.into())
}
}