use objc2_foundation::NSError;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Error {
pub domain: Option<String>,
pub code: Option<isize>,
pub message: String,
pub invalid_argument: bool,
}
impl Error {
pub(crate) fn invalid_argument(message: impl Into<String>) -> Self {
Self {
domain: None,
code: None,
message: message.into(),
invalid_argument: true,
}
}
pub(crate) fn unsupported(message: impl Into<String>) -> Self {
Self {
domain: None,
code: None,
message: message.into(),
invalid_argument: false,
}
}
}
pub(crate) fn metal_error(error: &NSError) -> Error {
Error {
domain: Some(error.domain().to_string()),
code: Some(error.code()),
message: error.localizedDescription().to_string(),
invalid_argument: false,
}
}