1use std::error::Error;
2use std::fmt;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
5pub enum LiveTextSubjectUnavailable {
7 ImageUnavailable,
9}
10
11impl fmt::Display for LiveTextSubjectUnavailable {
12 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13 match self {
14 Self::ImageUnavailable => f.write_str("subject image is unavailable"),
15 }
16 }
17}
18
19#[derive(Debug, Clone, PartialEq, Eq)]
20pub enum VisionKitError {
22 InvalidArgument(String),
24 UnavailableOnThisMacOS(String),
26 UnavailableOnThisPlatform(String),
28 TimedOut(String),
30 AnalyzerNotSupported(String),
32 Framework(String),
34 LiveTextSubjectUnavailable(LiveTextSubjectUnavailable),
36 Unknown(String),
38}
39
40impl fmt::Display for VisionKitError {
41 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
42 match self {
43 Self::InvalidArgument(message)
44 | Self::UnavailableOnThisMacOS(message)
45 | Self::UnavailableOnThisPlatform(message)
46 | Self::TimedOut(message)
47 | Self::AnalyzerNotSupported(message)
48 | Self::Framework(message)
49 | Self::Unknown(message) => f.write_str(message),
50 Self::LiveTextSubjectUnavailable(kind) => kind.fmt(f),
51 }
52 }
53}
54
55impl Error for VisionKitError {}