Skip to main content

oximedia_clips/
error.rs

1//! Error types for clip management.
2
3use std::path::PathBuf;
4
5/// Result type for clip operations.
6pub type ClipResult<T> = Result<T, ClipError>;
7
8/// Errors that can occur during clip operations.
9#[derive(Debug, thiserror::Error)]
10pub enum ClipError {
11    /// Database error.
12    #[cfg(not(target_arch = "wasm32"))]
13    #[error("Database error: {0}")]
14    Database(#[from] sqlx::Error),
15
16    /// Clip not found.
17    #[error("Clip not found: {0}")]
18    ClipNotFound(String),
19
20    /// Bin not found.
21    #[error("Bin not found: {0}")]
22    BinNotFound(String),
23
24    /// Folder not found.
25    #[error("Folder not found: {0}")]
26    FolderNotFound(String),
27
28    /// Collection not found.
29    #[error("Collection not found: {0}")]
30    CollectionNotFound(String),
31
32    /// Marker not found.
33    #[error("Marker not found: {0}")]
34    MarkerNotFound(String),
35
36    /// Note not found.
37    #[error("Note not found: {0}")]
38    NoteNotFound(String),
39
40    /// Take not found.
41    #[error("Take not found: {0}")]
42    TakeNotFound(String),
43
44    /// Invalid timecode.
45    #[error("Invalid timecode: {0}")]
46    InvalidTimecode(String),
47
48    /// Invalid rating.
49    #[error("Invalid rating: {0}")]
50    InvalidRating(i32),
51
52    /// Invalid proxy quality.
53    #[error("Invalid proxy quality: {0}")]
54    InvalidProxyQuality(String),
55
56    /// File not found.
57    #[error("File not found: {0}")]
58    FileNotFound(PathBuf),
59
60    /// I/O error.
61    #[error("I/O error: {0}")]
62    Io(#[from] std::io::Error),
63
64    /// Serialization error.
65    #[error("Serialization error: {0}")]
66    Serialization(String),
67
68    /// Invalid smart collection rule.
69    #[error("Invalid smart collection rule: {0}")]
70    InvalidSmartRule(String),
71
72    /// Export error.
73    #[error("Export error: {0}")]
74    Export(String),
75
76    /// Import error.
77    #[error("Import error: {0}")]
78    Import(String),
79}