librashader_runtime_mtl/
error.rs1use librashader_common::{FilterMode, WrapMode};
3use librashader_preprocess::PreprocessError;
4use librashader_presets::ParsePresetError;
5use librashader_reflect::error::{ShaderCompileError, ShaderReflectError};
6use librashader_runtime::image::ImageError;
7use objc2::rc::Retained;
8use objc2_foundation::NSError;
9use thiserror::Error;
10
11#[derive(Error, Debug)]
13#[non_exhaustive]
14pub enum FilterChainError {
15 #[error("shader preset parse error")]
16 ShaderPresetError(#[from] ParsePresetError),
17 #[error("shader preprocess error")]
18 ShaderPreprocessError(#[from] PreprocessError),
19 #[error("shader compile error")]
20 ShaderCompileError(#[from] ShaderCompileError),
21 #[error("shader reflect error")]
22 ShaderReflectError(#[from] ShaderReflectError),
23 #[error("lut loading error")]
24 LutLoadError(#[from] ImageError),
25 #[error("sampler create error")]
26 SamplerError(WrapMode, FilterMode, FilterMode),
27 #[error("buffer creation error")]
28 BufferError,
29 #[error("metal error")]
30 MetalError(#[from] Retained<NSError>),
31 #[error("couldn't find entry for shader")]
32 ShaderWrongEntryName,
33 #[error("couldn't create render pass")]
34 FailedToCreateRenderPass,
35 #[error("couldn't create texture")]
36 FailedToCreateTexture,
37 #[error("couldn't create command buffer")]
38 FailedToCreateCommandBuffer,
39 #[error("unreachable")]
40 Infallible(#[from] std::convert::Infallible),
41}
42
43pub type Result<T> = std::result::Result<T, FilterChainError>;