1use crate::Event;
2use derive_more::From;
3use displaydoc::Display;
4use thiserror::Error;
5use wasm_bindgen::JsValue;
6
7#[derive(Debug, Display, Error, From)]
8pub enum Error {
9 #[from(ignore)]
11 CannotRemoveAttribute(String),
12 #[from(ignore)]
14 ChildElementNotFound(&'static str),
15 #[from(ignore)]
17 DomElementNotFound(&'static str),
18 DynRefFailed,
20 #[from(ignore)]
22 ElementIdNotFound(&'static str),
23 EventNotImplemented(Event),
25 #[from(ignore)]
27 EventNotHandled(Event),
28 FirstElementNotFound,
30 NotHtmlElement,
32 NotEventTarget,
34 NoDocumentElement,
36 NoTargetElement,
38 #[from(ignore)]
40 NoValue(&'static str),
41 SelectorsParserError,
43 JsValue(JsValue),
45}
46
47impl Into<JsValue> for Error {
48 fn into(self) -> JsValue {
49 match self {
50 Error::JsValue(value) => value,
51 _ => JsValue::from_str(&self.to_string()),
52 }
53 }
54}