browser_info/
error.rs

1// ================================================================================================
2// Error type Definition  - エラー型定義
3// ================================================================================================
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum BrowserInfoError {
9    /// No active window found
10    #[error("No active window found")]
11    WindowNotFound,
12
13    /// Active window is not a browser
14    #[error("Active window is not a browser")]
15    NotABrowser,
16
17    /// Failed to extract URL from browser
18    #[error("Failed to extract URL from browser: {0}")]
19    UrlExtractionFailed(String),
20
21    /// Browser detection failed
22    #[error("Browser detection failed: {0}")]
23    BrowserDetectionFailed(String),
24
25    /// Platform-specific error
26    #[error("Platform-specific error: {0}")]
27    PlatformError(String),
28
29    /// Invalid URL format
30    #[error("Invalid URL format: {0}")]
31    InvalidUrl(String),
32
33    /// Timeout during operation
34    #[error("Timeout during operation")]
35    Timeout,
36
37    /// Permission denied (e.g., accessibility permissions on macOS)
38    #[error("Permission denied")]
39    PermissionDenied,
40
41    #[error("Network error: {0}")]
42    NetworkError(String),
43
44    #[error("JSON parse error: {0}")]
45    ParseError(String),
46
47    #[error("No active tabs found")]
48    NoActiveTabs,
49
50    #[error("Chrome DevTools not available")]
51    ChromeDevToolsNotAvailable,
52
53    /// Other error
54    #[error("Other error: {0}")]
55    Other(String),
56}
57
58pub type BrowserError = BrowserInfoError;