1use image::ImageError;
2use thiserror::Error;
3use wasm_bindgen::JsValue;
4
5#[derive(Error, Debug)]
6pub enum WebImageError {
7 #[error("failed to convert web image to dynamic image: container is not large enough")]
8 ConversionError,
9 #[error("Failed to create web image")]
10 ImageError(#[from] ImageError),
11 #[error("A DOM error occurred")]
12 DomError,
13 #[error("A JS error occurred")]
14 JsError { inner: JsValue },
15}
16
17impl From<WebImageError> for JsValue {
18 fn from(value: WebImageError) -> Self {
19 JsValue::from_str(value.to_string().as_str())
20 }
21}
22
23impl From<JsValue> for WebImageError {
24 fn from(value: JsValue) -> Self {
25 WebImageError::JsError { inner: value }
26 }
27}