error.rs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /// The plugin error type.
  2. #[derive(Debug, thiserror::Error)]
  3. pub enum Error {
  4. /// Failed to create webview.
  5. #[error("failed to create webview")]
  6. CreateWebview,
  7. /// Failed to create window.
  8. #[error("failed to create window")]
  9. CreateWindow,
  10. /// Can't access webview dispatcher because the webview was closed or not found.
  11. #[error("webview not found: invalid label or it was closed")]
  12. WebviewNotFound,
  13. /// Embedded asset not found.
  14. #[error("asset not found: {0}")]
  15. AssetNotFound(String),
  16. /// Embedded server port not available.
  17. #[error("failed to setup server, port {0} not available")]
  18. PortNotAvailable(String),
  19. /// Failed to serialize/deserialize.
  20. #[error("JSON error: {0}")]
  21. Json(serde_json::Error),
  22. /// Unknown API type.
  23. #[error("unknown API")]
  24. UnknownApi,
  25. /// Failed to execute tauri API.
  26. #[error("failed to execute API: {0}")]
  27. FailedToExecuteApi(#[from] tauri_api::Error),
  28. /// IO error.
  29. #[error("{0}")]
  30. Io(#[from] std::io::Error),
  31. /// Failed to decode base64.
  32. #[error("Failed to decode base64 string: {0}")]
  33. Base64Decode(#[from] base64::DecodeError),
  34. }
  35. impl From<serde_json::Error> for Error {
  36. fn from(error: serde_json::Error) -> Self {
  37. if error.to_string().contains("unknown variant") {
  38. Self::UnknownApi
  39. } else {
  40. Self::Json(error)
  41. }
  42. }
  43. }