1use serde::{ser::Serializer, Serialize};
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Debug, thiserror::Error)]
6pub enum Error {
7 #[error("webview bundle error: {0}")]
8 WebviewBundle(#[from] wvb::Error),
9 #[error("fail to resolve directory: {0}")]
10 FailToResolveDirectory(String),
11 #[error("tauri error: {0}")]
12 Tauri(#[from] tauri::Error),
13 #[error("duplicated protocol scheme: {scheme}")]
14 ProtocolSchemeDuplicated { scheme: String },
15}
16
17impl Serialize for Error {
18 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
19 where
20 S: Serializer,
21 {
22 serializer.serialize_str(self.to_string().as_ref())
23 }
24}