objc2_vision/generated/
VNDetectHumanBodyPoseRequest.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4use objc2::__framework_prelude::*;
5use objc2_foundation::*;
6
7use crate::*;
8
9extern "C" {
10    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeynose?language=objc)
11    #[cfg(feature = "VNTypes")]
12    pub static VNBodyLandmarkKeyNose: &'static VNRecognizedPointKey;
13}
14
15extern "C" {
16    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeylefteye?language=objc)
17    #[cfg(feature = "VNTypes")]
18    pub static VNBodyLandmarkKeyLeftEye: &'static VNRecognizedPointKey;
19}
20
21extern "C" {
22    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrighteye?language=objc)
23    #[cfg(feature = "VNTypes")]
24    pub static VNBodyLandmarkKeyRightEye: &'static VNRecognizedPointKey;
25}
26
27extern "C" {
28    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftear?language=objc)
29    #[cfg(feature = "VNTypes")]
30    pub static VNBodyLandmarkKeyLeftEar: &'static VNRecognizedPointKey;
31}
32
33extern "C" {
34    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightear?language=objc)
35    #[cfg(feature = "VNTypes")]
36    pub static VNBodyLandmarkKeyRightEar: &'static VNRecognizedPointKey;
37}
38
39extern "C" {
40    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftshoulder?language=objc)
41    #[cfg(feature = "VNTypes")]
42    pub static VNBodyLandmarkKeyLeftShoulder: &'static VNRecognizedPointKey;
43}
44
45extern "C" {
46    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightshoulder?language=objc)
47    #[cfg(feature = "VNTypes")]
48    pub static VNBodyLandmarkKeyRightShoulder: &'static VNRecognizedPointKey;
49}
50
51extern "C" {
52    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyneck?language=objc)
53    #[cfg(feature = "VNTypes")]
54    pub static VNBodyLandmarkKeyNeck: &'static VNRecognizedPointKey;
55}
56
57extern "C" {
58    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftelbow?language=objc)
59    #[cfg(feature = "VNTypes")]
60    pub static VNBodyLandmarkKeyLeftElbow: &'static VNRecognizedPointKey;
61}
62
63extern "C" {
64    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightelbow?language=objc)
65    #[cfg(feature = "VNTypes")]
66    pub static VNBodyLandmarkKeyRightElbow: &'static VNRecognizedPointKey;
67}
68
69extern "C" {
70    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftwrist?language=objc)
71    #[cfg(feature = "VNTypes")]
72    pub static VNBodyLandmarkKeyLeftWrist: &'static VNRecognizedPointKey;
73}
74
75extern "C" {
76    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightwrist?language=objc)
77    #[cfg(feature = "VNTypes")]
78    pub static VNBodyLandmarkKeyRightWrist: &'static VNRecognizedPointKey;
79}
80
81extern "C" {
82    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeylefthip?language=objc)
83    #[cfg(feature = "VNTypes")]
84    pub static VNBodyLandmarkKeyLeftHip: &'static VNRecognizedPointKey;
85}
86
87extern "C" {
88    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrighthip?language=objc)
89    #[cfg(feature = "VNTypes")]
90    pub static VNBodyLandmarkKeyRightHip: &'static VNRecognizedPointKey;
91}
92
93extern "C" {
94    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyroot?language=objc)
95    #[cfg(feature = "VNTypes")]
96    pub static VNBodyLandmarkKeyRoot: &'static VNRecognizedPointKey;
97}
98
99extern "C" {
100    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftknee?language=objc)
101    #[cfg(feature = "VNTypes")]
102    pub static VNBodyLandmarkKeyLeftKnee: &'static VNRecognizedPointKey;
103}
104
105extern "C" {
106    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightknee?language=objc)
107    #[cfg(feature = "VNTypes")]
108    pub static VNBodyLandmarkKeyRightKnee: &'static VNRecognizedPointKey;
109}
110
111extern "C" {
112    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftankle?language=objc)
113    #[cfg(feature = "VNTypes")]
114    pub static VNBodyLandmarkKeyLeftAnkle: &'static VNRecognizedPointKey;
115}
116
117extern "C" {
118    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightankle?language=objc)
119    #[cfg(feature = "VNTypes")]
120    pub static VNBodyLandmarkKeyRightAnkle: &'static VNRecognizedPointKey;
121}
122
123extern "C" {
124    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyface?language=objc)
125    #[cfg(feature = "VNTypes")]
126    pub static VNBodyLandmarkRegionKeyFace: &'static VNRecognizedPointGroupKey;
127}
128
129extern "C" {
130    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeytorso?language=objc)
131    #[cfg(feature = "VNTypes")]
132    pub static VNBodyLandmarkRegionKeyTorso: &'static VNRecognizedPointGroupKey;
133}
134
135extern "C" {
136    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyleftarm?language=objc)
137    #[cfg(feature = "VNTypes")]
138    pub static VNBodyLandmarkRegionKeyLeftArm: &'static VNRecognizedPointGroupKey;
139}
140
141extern "C" {
142    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyrightarm?language=objc)
143    #[cfg(feature = "VNTypes")]
144    pub static VNBodyLandmarkRegionKeyRightArm: &'static VNRecognizedPointGroupKey;
145}
146
147extern "C" {
148    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyleftleg?language=objc)
149    #[cfg(feature = "VNTypes")]
150    pub static VNBodyLandmarkRegionKeyLeftLeg: &'static VNRecognizedPointGroupKey;
151}
152
153extern "C" {
154    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyrightleg?language=objc)
155    #[cfg(feature = "VNTypes")]
156    pub static VNBodyLandmarkRegionKeyRightLeg: &'static VNRecognizedPointGroupKey;
157}
158
159/// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointname?language=objc)
160// NS_TYPED_ENUM
161#[cfg(feature = "VNTypes")]
162pub type VNHumanBodyPoseObservationJointName = VNRecognizedPointKey;
163
164extern "C" {
165    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamenose?language=objc)
166    #[cfg(feature = "VNTypes")]
167    pub static VNHumanBodyPoseObservationJointNameNose:
168        &'static VNHumanBodyPoseObservationJointName;
169}
170
171extern "C" {
172    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamelefteye?language=objc)
173    #[cfg(feature = "VNTypes")]
174    pub static VNHumanBodyPoseObservationJointNameLeftEye:
175        &'static VNHumanBodyPoseObservationJointName;
176}
177
178extern "C" {
179    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerighteye?language=objc)
180    #[cfg(feature = "VNTypes")]
181    pub static VNHumanBodyPoseObservationJointNameRightEye:
182        &'static VNHumanBodyPoseObservationJointName;
183}
184
185extern "C" {
186    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftear?language=objc)
187    #[cfg(feature = "VNTypes")]
188    pub static VNHumanBodyPoseObservationJointNameLeftEar:
189        &'static VNHumanBodyPoseObservationJointName;
190}
191
192extern "C" {
193    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightear?language=objc)
194    #[cfg(feature = "VNTypes")]
195    pub static VNHumanBodyPoseObservationJointNameRightEar:
196        &'static VNHumanBodyPoseObservationJointName;
197}
198
199extern "C" {
200    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftshoulder?language=objc)
201    #[cfg(feature = "VNTypes")]
202    pub static VNHumanBodyPoseObservationJointNameLeftShoulder:
203        &'static VNHumanBodyPoseObservationJointName;
204}
205
206extern "C" {
207    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightshoulder?language=objc)
208    #[cfg(feature = "VNTypes")]
209    pub static VNHumanBodyPoseObservationJointNameRightShoulder:
210        &'static VNHumanBodyPoseObservationJointName;
211}
212
213extern "C" {
214    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameneck?language=objc)
215    #[cfg(feature = "VNTypes")]
216    pub static VNHumanBodyPoseObservationJointNameNeck:
217        &'static VNHumanBodyPoseObservationJointName;
218}
219
220extern "C" {
221    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftelbow?language=objc)
222    #[cfg(feature = "VNTypes")]
223    pub static VNHumanBodyPoseObservationJointNameLeftElbow:
224        &'static VNHumanBodyPoseObservationJointName;
225}
226
227extern "C" {
228    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightelbow?language=objc)
229    #[cfg(feature = "VNTypes")]
230    pub static VNHumanBodyPoseObservationJointNameRightElbow:
231        &'static VNHumanBodyPoseObservationJointName;
232}
233
234extern "C" {
235    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftwrist?language=objc)
236    #[cfg(feature = "VNTypes")]
237    pub static VNHumanBodyPoseObservationJointNameLeftWrist:
238        &'static VNHumanBodyPoseObservationJointName;
239}
240
241extern "C" {
242    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightwrist?language=objc)
243    #[cfg(feature = "VNTypes")]
244    pub static VNHumanBodyPoseObservationJointNameRightWrist:
245        &'static VNHumanBodyPoseObservationJointName;
246}
247
248extern "C" {
249    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamelefthip?language=objc)
250    #[cfg(feature = "VNTypes")]
251    pub static VNHumanBodyPoseObservationJointNameLeftHip:
252        &'static VNHumanBodyPoseObservationJointName;
253}
254
255extern "C" {
256    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerighthip?language=objc)
257    #[cfg(feature = "VNTypes")]
258    pub static VNHumanBodyPoseObservationJointNameRightHip:
259        &'static VNHumanBodyPoseObservationJointName;
260}
261
262extern "C" {
263    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameroot?language=objc)
264    #[cfg(feature = "VNTypes")]
265    pub static VNHumanBodyPoseObservationJointNameRoot:
266        &'static VNHumanBodyPoseObservationJointName;
267}
268
269extern "C" {
270    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftknee?language=objc)
271    #[cfg(feature = "VNTypes")]
272    pub static VNHumanBodyPoseObservationJointNameLeftKnee:
273        &'static VNHumanBodyPoseObservationJointName;
274}
275
276extern "C" {
277    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightknee?language=objc)
278    #[cfg(feature = "VNTypes")]
279    pub static VNHumanBodyPoseObservationJointNameRightKnee:
280        &'static VNHumanBodyPoseObservationJointName;
281}
282
283extern "C" {
284    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftankle?language=objc)
285    #[cfg(feature = "VNTypes")]
286    pub static VNHumanBodyPoseObservationJointNameLeftAnkle:
287        &'static VNHumanBodyPoseObservationJointName;
288}
289
290extern "C" {
291    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightankle?language=objc)
292    #[cfg(feature = "VNTypes")]
293    pub static VNHumanBodyPoseObservationJointNameRightAnkle:
294        &'static VNHumanBodyPoseObservationJointName;
295}
296
297/// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupname?language=objc)
298// NS_TYPED_ENUM
299#[cfg(feature = "VNTypes")]
300pub type VNHumanBodyPoseObservationJointsGroupName = VNRecognizedPointGroupKey;
301
302extern "C" {
303    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameface?language=objc)
304    #[cfg(feature = "VNTypes")]
305    pub static VNHumanBodyPoseObservationJointsGroupNameFace:
306        &'static VNHumanBodyPoseObservationJointsGroupName;
307}
308
309extern "C" {
310    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnametorso?language=objc)
311    #[cfg(feature = "VNTypes")]
312    pub static VNHumanBodyPoseObservationJointsGroupNameTorso:
313        &'static VNHumanBodyPoseObservationJointsGroupName;
314}
315
316extern "C" {
317    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameleftarm?language=objc)
318    #[cfg(feature = "VNTypes")]
319    pub static VNHumanBodyPoseObservationJointsGroupNameLeftArm:
320        &'static VNHumanBodyPoseObservationJointsGroupName;
321}
322
323extern "C" {
324    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnamerightarm?language=objc)
325    #[cfg(feature = "VNTypes")]
326    pub static VNHumanBodyPoseObservationJointsGroupNameRightArm:
327        &'static VNHumanBodyPoseObservationJointsGroupName;
328}
329
330extern "C" {
331    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameleftleg?language=objc)
332    #[cfg(feature = "VNTypes")]
333    pub static VNHumanBodyPoseObservationJointsGroupNameLeftLeg:
334        &'static VNHumanBodyPoseObservationJointsGroupName;
335}
336
337extern "C" {
338    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnamerightleg?language=objc)
339    #[cfg(feature = "VNTypes")]
340    pub static VNHumanBodyPoseObservationJointsGroupNameRightLeg:
341        &'static VNHumanBodyPoseObservationJointsGroupName;
342}
343
344extern "C" {
345    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameall?language=objc)
346    #[cfg(feature = "VNTypes")]
347    pub static VNHumanBodyPoseObservationJointsGroupNameAll:
348        &'static VNHumanBodyPoseObservationJointsGroupName;
349}
350
351extern_class!(
352    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservation?language=objc)
353    #[unsafe(super(VNRecognizedPointsObservation, VNObservation, NSObject))]
354    #[derive(Debug, PartialEq, Eq, Hash)]
355    #[cfg(feature = "VNObservation")]
356    pub struct VNHumanBodyPoseObservation;
357);
358
359#[cfg(feature = "VNObservation")]
360extern_conformance!(
361    unsafe impl NSCoding for VNHumanBodyPoseObservation {}
362);
363
364#[cfg(feature = "VNObservation")]
365extern_conformance!(
366    unsafe impl NSCopying for VNHumanBodyPoseObservation {}
367);
368
369#[cfg(feature = "VNObservation")]
370unsafe impl CopyingHelper for VNHumanBodyPoseObservation {
371    type Result = Self;
372}
373
374#[cfg(feature = "VNObservation")]
375extern_conformance!(
376    unsafe impl NSObjectProtocol for VNHumanBodyPoseObservation {}
377);
378
379#[cfg(feature = "VNObservation")]
380extern_conformance!(
381    unsafe impl NSSecureCoding for VNHumanBodyPoseObservation {}
382);
383
384#[cfg(all(feature = "VNObservation", feature = "VNRequestRevisionProviding"))]
385extern_conformance!(
386    unsafe impl VNRequestRevisionProviding for VNHumanBodyPoseObservation {}
387);
388
389#[cfg(feature = "VNObservation")]
390impl VNHumanBodyPoseObservation {
391    extern_methods!(
392        #[cfg(feature = "VNTypes")]
393        /// All of the joint names available in the observation.
394        #[unsafe(method(availableJointNames))]
395        #[unsafe(method_family = none)]
396        pub unsafe fn availableJointNames(
397            &self,
398        ) -> Retained<NSArray<VNHumanBodyPoseObservationJointName>>;
399
400        #[cfg(feature = "VNTypes")]
401        /// All of the joints group names available in the observation.
402        #[unsafe(method(availableJointsGroupNames))]
403        #[unsafe(method_family = none)]
404        pub unsafe fn availableJointsGroupNames(
405            &self,
406        ) -> Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>;
407
408        #[cfg(all(
409            feature = "VNDetectedPoint",
410            feature = "VNGeometry",
411            feature = "VNTypes"
412        ))]
413        /// Obtain a specific normalized point for a named human body joint.
414        ///
415        ///
416        /// Parameter `jointName`: The name of the human body joint.
417        ///
418        /// Parameter `error`: The address of a variable that will be populated with the error that describes the failure.  If the caller does not require this information, NULL can be passed.
419        ///
420        /// Returns: the recognized point, or nil if the point could not be obtained.
421        #[unsafe(method(recognizedPointForJointName:error:_))]
422        #[unsafe(method_family = none)]
423        pub unsafe fn recognizedPointForJointName_error(
424            &self,
425            joint_name: &VNHumanBodyPoseObservationJointName,
426        ) -> Result<Retained<VNRecognizedPoint>, Retained<NSError>>;
427
428        #[cfg(all(
429            feature = "VNDetectedPoint",
430            feature = "VNGeometry",
431            feature = "VNTypes"
432        ))]
433        /// Obtains the collection of points associated with a named human body joints group.
434        ///
435        ///
436        /// The obtained collection is a dictionary that provides the mapping of human body join names to the recognized point.
437        ///
438        ///
439        /// Parameter `jointsGroupName`: The name of the human body joints group.
440        ///
441        /// Parameter `error`: The address of a variable that will be populated with the error that describes the failure.  If the caller does not require this information, NULL can be passed.
442        ///
443        /// Returns: a dictionary of recognized points in the group, or nil if an error was encountered.
444        #[unsafe(method(recognizedPointsForJointsGroupName:error:_))]
445        #[unsafe(method_family = none)]
446        pub unsafe fn recognizedPointsForJointsGroupName_error(
447            &self,
448            joints_group_name: &VNHumanBodyPoseObservationJointsGroupName,
449        ) -> Result<
450            Retained<NSDictionary<VNHumanBodyPoseObservationJointName, VNRecognizedPoint>>,
451            Retained<NSError>,
452        >;
453    );
454}
455
456/// Methods declared on superclass `VNRecognizedPointsObservation`.
457#[cfg(feature = "VNObservation")]
458impl VNHumanBodyPoseObservation {
459    extern_methods!(
460        #[unsafe(method(new))]
461        #[unsafe(method_family = new)]
462        pub unsafe fn new() -> Retained<Self>;
463
464        #[unsafe(method(init))]
465        #[unsafe(method_family = init)]
466        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
467    );
468}
469
470extern_class!(
471    /// Detects specific landmark points on human bodies.
472    ///
473    /// This request will produce a collection of VNHumanBodyPoseObservation objects which describe the pose of each detected human body.
474    ///
475    /// See also [Apple's documentation](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequest?language=objc)
476    #[unsafe(super(VNImageBasedRequest, VNRequest, NSObject))]
477    #[derive(Debug, PartialEq, Eq, Hash)]
478    #[cfg(feature = "VNRequest")]
479    pub struct VNDetectHumanBodyPoseRequest;
480);
481
482#[cfg(feature = "VNRequest")]
483extern_conformance!(
484    unsafe impl NSCopying for VNDetectHumanBodyPoseRequest {}
485);
486
487#[cfg(feature = "VNRequest")]
488unsafe impl CopyingHelper for VNDetectHumanBodyPoseRequest {
489    type Result = Self;
490}
491
492#[cfg(feature = "VNRequest")]
493extern_conformance!(
494    unsafe impl NSObjectProtocol for VNDetectHumanBodyPoseRequest {}
495);
496
497#[cfg(feature = "VNRequest")]
498impl VNDetectHumanBodyPoseRequest {
499    extern_methods!(
500        #[cfg(feature = "VNTypes")]
501        /// Obtain the collection of human body joint names that are supported by a given request revision.
502        ///
503        /// Parameter `revision`: The revision of VNDetectHumanBodyPoseRequest being queried.
504        ///
505        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
506        ///
507        /// Returns: An array of VNHumanBodyPoseObservationJointName symbols that are supported by the request revision, or nil if a failure occurs.
508        #[deprecated]
509        #[unsafe(method(supportedJointNamesForRevision:error:_))]
510        #[unsafe(method_family = none)]
511        pub unsafe fn supportedJointNamesForRevision_error(
512            revision: NSUInteger,
513        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointName>>, Retained<NSError>>;
514
515        #[cfg(feature = "VNTypes")]
516        /// Obtain the collection of human body joint names that are supported by a given request object configured with a specific revision.
517        ///
518        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
519        ///
520        /// Returns: An array of VNHumanBodyPoseObservationJointName symbols that are supported by the request revision, or nil if a failure occurs.
521        #[unsafe(method(supportedJointNamesAndReturnError:_))]
522        #[unsafe(method_family = none)]
523        pub unsafe fn supportedJointNamesAndReturnError(
524            &self,
525        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointName>>, Retained<NSError>>;
526
527        #[cfg(feature = "VNTypes")]
528        /// Obtain the collection of human body joints group names that are supported by a given request revision.
529        ///
530        /// Parameter `revision`: The revision of VNDetectHumanBodyPoseRequest being queried.
531        ///
532        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
533        ///
534        /// Returns: An array of VNHumanBodyPoseObservationJointsGroupName symbols that are supported by the request revision, or nil if a failure occurs.
535        #[deprecated]
536        #[unsafe(method(supportedJointsGroupNamesForRevision:error:_))]
537        #[unsafe(method_family = none)]
538        pub unsafe fn supportedJointsGroupNamesForRevision_error(
539            revision: NSUInteger,
540        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>, Retained<NSError>>;
541
542        #[cfg(feature = "VNTypes")]
543        /// Obtain the collection of human body joints group names that are supported by a given request object configured with a specific revision.
544        ///
545        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
546        ///
547        /// Returns: An array of VNHumanBodyPoseObservationJointsGroupName symbols that are supported by the request revision, or nil if a failure occurs.
548        #[unsafe(method(supportedJointsGroupNamesAndReturnError:_))]
549        #[unsafe(method_family = none)]
550        pub unsafe fn supportedJointsGroupNamesAndReturnError(
551            &self,
552        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>, Retained<NSError>>;
553
554        #[cfg(feature = "VNObservation")]
555        /// VNHumanBodyPoseObservation results.
556        #[unsafe(method(results))]
557        #[unsafe(method_family = none)]
558        pub unsafe fn results(&self) -> Option<Retained<NSArray<VNHumanBodyPoseObservation>>>;
559    );
560}
561
562/// Methods declared on superclass `VNRequest`.
563#[cfg(feature = "VNRequest")]
564impl VNDetectHumanBodyPoseRequest {
565    extern_methods!(
566        /// Creates a new VNRequest with no completion handler.
567        #[unsafe(method(init))]
568        #[unsafe(method_family = init)]
569        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
570
571        #[cfg(feature = "block2")]
572        /// Creates a new VNRequest with an optional completion handler.
573        ///
574        ///
575        /// Parameter `completionHandler`: The block to be invoked after the request has completed its processing. The completion handler gets executed on the same dispatch queue as the request being executed.
576        #[unsafe(method(initWithCompletionHandler:))]
577        #[unsafe(method_family = init)]
578        pub unsafe fn initWithCompletionHandler(
579            this: Allocated<Self>,
580            completion_handler: VNRequestCompletionHandler,
581        ) -> Retained<Self>;
582    );
583}
584
585/// Methods declared on superclass `NSObject`.
586#[cfg(feature = "VNRequest")]
587impl VNDetectHumanBodyPoseRequest {
588    extern_methods!(
589        #[unsafe(method(new))]
590        #[unsafe(method_family = new)]
591        pub unsafe fn new() -> Retained<Self>;
592    );
593}
594
595/// [Apple's documentation](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequestrevision1?language=objc)
596pub static VNDetectHumanBodyPoseRequestRevision1: NSUInteger = 1;