use thiserror::Error;
use crate::core;
#[derive(Debug, Error)]
pub enum RendererCreateError {
#[error(
"\
model size exceeds the device limit: {model_size} > {device_limit}, \
try smaller model or more aggressive compression\
"
)]
ModelSizeExceedsDeviceLimit { model_size: u64, device_limit: u64 },
#[error("{0}")]
WeslCompile(#[from] wesl::Error),
}
#[derive(Debug, Error)]
pub enum PreprocessorCreateError {
#[error(
"\
model size exceeds the device limit: {model_size} > {device_limit}, \
try smaller model or more aggressive compression\
"
)]
ModelSizeExceedsDeviceLimit { model_size: u64, device_limit: u64 },
#[error("{0}")]
ComputeBundleBuild(#[from] core::ComputeBundleBuildError),
#[error("{0}")]
WeslCompile(#[from] wesl::Error),
}
#[derive(Debug, Error)]
pub enum ViewerCreateError {
#[error("{0}")]
RendererCreate(#[from] RendererCreateError),
#[error("{0}")]
PreprocessorCreate(#[from] PreprocessorCreateError),
}
#[cfg(feature = "multi-model")]
#[derive(Debug, Error)]
pub enum MultiModelViewerAccessError {
#[error("model with the given key does not exist")]
ModelNotFound,
}