use objc2::{Encode, Encoding, RefEncode};
use objc2_foundation::NSErrorDomain;
#[repr(isize)]
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, PartialOrd, Ord)]
pub enum MTLDeviceError {
None = 0,
NotSupported = 1,
}
unsafe impl Encode for MTLDeviceError {
const ENCODING: Encoding = isize::ENCODING;
}
unsafe impl RefEncode for MTLDeviceError {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
unsafe extern "C" {
static MTLDeviceErrorDomain: &'static NSErrorDomain;
}
#[inline]
pub fn device_error_domain() -> String {
unsafe { MTLDeviceErrorDomain }.to_string()
}
#[cfg(test)]
mod tests {
use super::MTLDeviceError;
#[test]
fn error_codes_match_metal_header_values() {
assert_eq!(MTLDeviceError::None as isize, 0);
assert_eq!(MTLDeviceError::NotSupported as isize, 1);
}
}