tauri_plugin_printer/
error.rs1use 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(transparent)]
8 Io(#[from] std::io::Error),
9 #[error(transparent)]
10 Json(#[from] serde_json::Error),
11 #[error(transparent)]
12 Base64(#[from] base64::DecodeError),
13 #[error(transparent)]
14 Utf8(#[from] std::string::FromUtf8Error),
15 #[error("invalid input: {0}")]
16 InvalidInput(String),
17 #[error("printer command failed: {0}")]
18 CommandFailed(String),
19 #[error("printer was not found: {0}")]
20 PrinterNotFound(String),
21 #[error("tauri-plugin-printer is not supported on {0}")]
22 UnsupportedPlatform(String),
23}
24
25impl Serialize for Error {
26 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
27 where
28 S: Serializer,
29 {
30 serializer.serialize_str(self.to_string().as_ref())
31 }
32}