Skip to main content

visionkit/
error.rs

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 {}