objc2_vision/generated/
VNTrackingRequest.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct VNRequestTrackingLevel(pub NSUInteger);
17impl VNRequestTrackingLevel {
18 #[doc(alias = "VNRequestTrackingLevelAccurate")]
19 pub const Accurate: Self = Self(0);
20 #[doc(alias = "VNRequestTrackingLevelFast")]
21 pub const Fast: Self = Self(1);
22}
23
24unsafe impl Encode for VNRequestTrackingLevel {
25 const ENCODING: Encoding = NSUInteger::ENCODING;
26}
27
28unsafe impl RefEncode for VNRequestTrackingLevel {
29 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32extern_class!(
33 #[unsafe(super(VNImageBasedRequest, VNRequest, NSObject))]
39 #[derive(Debug, PartialEq, Eq, Hash)]
40 #[cfg(feature = "VNRequest")]
41 pub struct VNTrackingRequest;
42);
43
44#[cfg(feature = "VNRequest")]
45extern_conformance!(
46 unsafe impl NSCopying for VNTrackingRequest {}
47);
48
49#[cfg(feature = "VNRequest")]
50unsafe impl CopyingHelper for VNTrackingRequest {
51 type Result = Self;
52}
53
54#[cfg(feature = "VNRequest")]
55extern_conformance!(
56 unsafe impl NSObjectProtocol for VNTrackingRequest {}
57);
58
59#[cfg(feature = "VNRequest")]
60impl VNTrackingRequest {
61 extern_methods!(
62 #[cfg(feature = "VNObservation")]
63 #[unsafe(method(inputObservation))]
65 #[unsafe(method_family = none)]
66 pub unsafe fn inputObservation(&self) -> Retained<VNDetectedObjectObservation>;
67
68 #[cfg(feature = "VNObservation")]
69 #[unsafe(method(setInputObservation:))]
71 #[unsafe(method_family = none)]
72 pub unsafe fn setInputObservation(&self, input_observation: &VNDetectedObjectObservation);
73
74 #[unsafe(method(trackingLevel))]
76 #[unsafe(method_family = none)]
77 pub unsafe fn trackingLevel(&self) -> VNRequestTrackingLevel;
78
79 #[unsafe(method(setTrackingLevel:))]
81 #[unsafe(method_family = none)]
82 pub unsafe fn setTrackingLevel(&self, tracking_level: VNRequestTrackingLevel);
83
84 #[unsafe(method(isLastFrame))]
86 #[unsafe(method_family = none)]
87 pub unsafe fn isLastFrame(&self) -> bool;
88
89 #[unsafe(method(setLastFrame:))]
91 #[unsafe(method_family = none)]
92 pub unsafe fn setLastFrame(&self, last_frame: bool);
93
94 #[unsafe(method(init))]
95 #[unsafe(method_family = init)]
96 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
97
98 #[cfg(feature = "block2")]
99 #[unsafe(method(initWithCompletionHandler:))]
100 #[unsafe(method_family = init)]
101 pub unsafe fn initWithCompletionHandler(
102 this: Allocated<Self>,
103 completion_handler: VNRequestCompletionHandler,
104 ) -> Retained<Self>;
105 );
106}
107
108#[cfg(feature = "VNRequest")]
110impl VNTrackingRequest {
111 extern_methods!(
112 #[unsafe(method(new))]
113 #[unsafe(method_family = new)]
114 pub unsafe fn new() -> Retained<Self>;
115 );
116}