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