use crate::NapiFieldHint;
use thiserror::Error;
#[derive(Error, Debug, Clone, PartialEq, Eq)]
pub enum NapiError {
#[error("Invalid JS object: {0}")]
InvalidObject(String),
#[error("Missing field: {0}")]
MissingField(String),
#[error("Invalid field value for {0}: {1}")]
InvalidField(String, String),
#[error("Invalid aggregator object shape: {0}")]
InvalidAggregatorShape(String),
}
impl NapiError {
#[inline]
pub fn invalid_field(hint: NapiFieldHint, err: impl ToString) -> NapiError {
Self::InvalidField(hint.id().to_string(), err.to_string())
}
#[inline]
pub fn invalid_field_name(name: impl Into<String>, err: impl ToString) -> NapiError {
Self::InvalidField(name.into(), err.to_string())
}
}