1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct VNRequestTextRecognitionLevel(pub NSInteger);
impl VNRequestTextRecognitionLevel {
    #[doc(alias = "VNRequestTextRecognitionLevelAccurate")]
    pub const Accurate: Self = Self(0);
    #[doc(alias = "VNRequestTextRecognitionLevelFast")]
    pub const Fast: Self = Self(1);
}

unsafe impl Encode for VNRequestTextRecognitionLevel {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for VNRequestTextRecognitionLevel {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "VNRequest")]
    pub struct VNRecognizeTextRequest;

    #[cfg(feature = "VNRequest")]
    unsafe impl ClassType for VNRecognizeTextRequest {
        #[inherits(VNRequest, NSObject)]
        type Super = VNImageBasedRequest;
        type Mutability = InteriorMutable;
    }
);

#[cfg(feature = "VNRequest")]
unsafe impl NSCopying for VNRecognizeTextRequest {}

#[cfg(feature = "VNRequest")]
unsafe impl NSObjectProtocol for VNRecognizeTextRequest {}

#[cfg(feature = "VNRequest")]
unsafe impl VNRequestProgressProviding for VNRecognizeTextRequest {}

extern_methods!(
    #[cfg(feature = "VNRequest")]
    unsafe impl VNRecognizeTextRequest {
        #[deprecated]
        #[method_id(@__retain_semantics Other supportedRecognitionLanguagesForTextRecognitionLevel:revision:error:_)]
        pub unsafe fn supportedRecognitionLanguagesForTextRecognitionLevel_revision_error(
            recognition_level: VNRequestTextRecognitionLevel,
            request_revision: NSUInteger,
        ) -> Result<Retained<NSArray<NSString>>, Retained<NSError>>;

        #[method_id(@__retain_semantics Other supportedRecognitionLanguagesAndReturnError:_)]
        pub unsafe fn supportedRecognitionLanguagesAndReturnError(
            &self,
        ) -> Result<Retained<NSArray<NSString>>, Retained<NSError>>;

        #[method_id(@__retain_semantics Other recognitionLanguages)]
        pub unsafe fn recognitionLanguages(&self) -> Retained<NSArray<NSString>>;

        #[method(setRecognitionLanguages:)]
        pub unsafe fn setRecognitionLanguages(&self, recognition_languages: &NSArray<NSString>);

        #[method_id(@__retain_semantics Other customWords)]
        pub unsafe fn customWords(&self) -> Retained<NSArray<NSString>>;

        #[method(setCustomWords:)]
        pub unsafe fn setCustomWords(&self, custom_words: &NSArray<NSString>);

        #[method(recognitionLevel)]
        pub unsafe fn recognitionLevel(&self) -> VNRequestTextRecognitionLevel;

        #[method(setRecognitionLevel:)]
        pub unsafe fn setRecognitionLevel(&self, recognition_level: VNRequestTextRecognitionLevel);

        #[method(usesLanguageCorrection)]
        pub unsafe fn usesLanguageCorrection(&self) -> bool;

        #[method(setUsesLanguageCorrection:)]
        pub unsafe fn setUsesLanguageCorrection(&self, uses_language_correction: bool);

        #[method(automaticallyDetectsLanguage)]
        pub unsafe fn automaticallyDetectsLanguage(&self) -> bool;

        #[method(setAutomaticallyDetectsLanguage:)]
        pub unsafe fn setAutomaticallyDetectsLanguage(&self, automatically_detects_language: bool);

        #[method(minimumTextHeight)]
        pub unsafe fn minimumTextHeight(&self) -> c_float;

        #[method(setMinimumTextHeight:)]
        pub unsafe fn setMinimumTextHeight(&self, minimum_text_height: c_float);

        #[cfg(feature = "VNObservation")]
        #[method_id(@__retain_semantics Other results)]
        pub unsafe fn results(&self) -> Option<Retained<NSArray<VNRecognizedTextObservation>>>;
    }
);

extern_methods!(
    /// Methods declared on superclass `VNRequest`
    #[cfg(feature = "VNRequest")]
    unsafe impl VNRecognizeTextRequest {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[cfg(feature = "block2")]
        #[method_id(@__retain_semantics Init initWithCompletionHandler:)]
        pub unsafe fn initWithCompletionHandler(
            this: Allocated<Self>,
            completion_handler: VNRequestCompletionHandler,
        ) -> Retained<Self>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(feature = "VNRequest")]
    unsafe impl VNRecognizeTextRequest {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Retained<Self>;
    }
);

pub static VNRecognizeTextRequestRevision1: NSUInteger = 1;

pub static VNRecognizeTextRequestRevision2: NSUInteger = 2;

pub static VNRecognizeTextRequestRevision3: NSUInteger = 3;