objc2_car_play/generated/
CPManeuver.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7#[cfg(feature = "objc2-ui-kit")]
8use objc2_ui_kit::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpmaneuvertype?language=objc)
13// NS_ENUM
14#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct CPManeuverType(pub NSUInteger);
17impl CPManeuverType {
18    #[doc(alias = "CPManeuverTypeNoTurn")]
19    pub const NoTurn: Self = Self(0);
20    #[doc(alias = "CPManeuverTypeLeftTurn")]
21    pub const LeftTurn: Self = Self(1);
22    #[doc(alias = "CPManeuverTypeRightTurn")]
23    pub const RightTurn: Self = Self(2);
24    #[doc(alias = "CPManeuverTypeStraightAhead")]
25    pub const StraightAhead: Self = Self(3);
26    #[doc(alias = "CPManeuverTypeUTurn")]
27    pub const UTurn: Self = Self(4);
28    #[doc(alias = "CPManeuverTypeFollowRoad")]
29    pub const FollowRoad: Self = Self(5);
30    #[doc(alias = "CPManeuverTypeEnterRoundabout")]
31    pub const EnterRoundabout: Self = Self(6);
32    #[doc(alias = "CPManeuverTypeExitRoundabout")]
33    pub const ExitRoundabout: Self = Self(7);
34    #[doc(alias = "CPManeuverTypeOffRamp")]
35    pub const OffRamp: Self = Self(8);
36    #[doc(alias = "CPManeuverTypeOnRamp")]
37    pub const OnRamp: Self = Self(9);
38    #[doc(alias = "CPManeuverTypeArriveEndOfNavigation")]
39    pub const ArriveEndOfNavigation: Self = Self(10);
40    #[doc(alias = "CPManeuverTypeStartRoute")]
41    pub const StartRoute: Self = Self(11);
42    #[doc(alias = "CPManeuverTypeArriveAtDestination")]
43    pub const ArriveAtDestination: Self = Self(12);
44    #[doc(alias = "CPManeuverTypeKeepLeft")]
45    pub const KeepLeft: Self = Self(13);
46    #[doc(alias = "CPManeuverTypeKeepRight")]
47    pub const KeepRight: Self = Self(14);
48    #[doc(alias = "CPManeuverTypeEnter_Ferry")]
49    pub const Enter_Ferry: Self = Self(15);
50    #[doc(alias = "CPManeuverTypeExitFerry")]
51    pub const ExitFerry: Self = Self(16);
52    #[doc(alias = "CPManeuverTypeChangeFerry")]
53    pub const ChangeFerry: Self = Self(17);
54    #[doc(alias = "CPManeuverTypeStartRouteWithUTurn")]
55    pub const StartRouteWithUTurn: Self = Self(18);
56    #[doc(alias = "CPManeuverTypeUTurnAtRoundabout")]
57    pub const UTurnAtRoundabout: Self = Self(19);
58    #[doc(alias = "CPManeuverTypeLeftTurnAtEnd")]
59    pub const LeftTurnAtEnd: Self = Self(20);
60    #[doc(alias = "CPManeuverTypeRightTurnAtEnd")]
61    pub const RightTurnAtEnd: Self = Self(21);
62    #[doc(alias = "CPManeuverTypeHighwayOffRampLeft")]
63    pub const HighwayOffRampLeft: Self = Self(22);
64    #[doc(alias = "CPManeuverTypeHighwayOffRampRight")]
65    pub const HighwayOffRampRight: Self = Self(23);
66    #[doc(alias = "CPManeuverTypeArriveAtDestinationLeft")]
67    pub const ArriveAtDestinationLeft: Self = Self(24);
68    #[doc(alias = "CPManeuverTypeArriveAtDestinationRight")]
69    pub const ArriveAtDestinationRight: Self = Self(25);
70    #[doc(alias = "CPManeuverTypeUTurnWhenPossible")]
71    pub const UTurnWhenPossible: Self = Self(26);
72    #[doc(alias = "CPManeuverTypeArriveEndOfDirections")]
73    pub const ArriveEndOfDirections: Self = Self(27);
74    #[doc(alias = "CPManeuverTypeRoundaboutExit1")]
75    pub const RoundaboutExit1: Self = Self(28);
76    #[doc(alias = "CPManeuverTypeRoundaboutExit2")]
77    pub const RoundaboutExit2: Self = Self(29);
78    #[doc(alias = "CPManeuverTypeRoundaboutExit3")]
79    pub const RoundaboutExit3: Self = Self(30);
80    #[doc(alias = "CPManeuverTypeRoundaboutExit4")]
81    pub const RoundaboutExit4: Self = Self(31);
82    #[doc(alias = "CPManeuverTypeRoundaboutExit5")]
83    pub const RoundaboutExit5: Self = Self(32);
84    #[doc(alias = "CPManeuverTypeRoundaboutExit6")]
85    pub const RoundaboutExit6: Self = Self(33);
86    #[doc(alias = "CPManeuverTypeRoundaboutExit7")]
87    pub const RoundaboutExit7: Self = Self(34);
88    #[doc(alias = "CPManeuverTypeRoundaboutExit8")]
89    pub const RoundaboutExit8: Self = Self(35);
90    #[doc(alias = "CPManeuverTypeRoundaboutExit9")]
91    pub const RoundaboutExit9: Self = Self(36);
92    #[doc(alias = "CPManeuverTypeRoundaboutExit10")]
93    pub const RoundaboutExit10: Self = Self(37);
94    #[doc(alias = "CPManeuverTypeRoundaboutExit11")]
95    pub const RoundaboutExit11: Self = Self(38);
96    #[doc(alias = "CPManeuverTypeRoundaboutExit12")]
97    pub const RoundaboutExit12: Self = Self(39);
98    #[doc(alias = "CPManeuverTypeRoundaboutExit13")]
99    pub const RoundaboutExit13: Self = Self(40);
100    #[doc(alias = "CPManeuverTypeRoundaboutExit14")]
101    pub const RoundaboutExit14: Self = Self(41);
102    #[doc(alias = "CPManeuverTypeRoundaboutExit15")]
103    pub const RoundaboutExit15: Self = Self(42);
104    #[doc(alias = "CPManeuverTypeRoundaboutExit16")]
105    pub const RoundaboutExit16: Self = Self(43);
106    #[doc(alias = "CPManeuverTypeRoundaboutExit17")]
107    pub const RoundaboutExit17: Self = Self(44);
108    #[doc(alias = "CPManeuverTypeRoundaboutExit18")]
109    pub const RoundaboutExit18: Self = Self(45);
110    #[doc(alias = "CPManeuverTypeRoundaboutExit19")]
111    pub const RoundaboutExit19: Self = Self(46);
112    #[doc(alias = "CPManeuverTypeSharpLeftTurn")]
113    pub const SharpLeftTurn: Self = Self(47);
114    #[doc(alias = "CPManeuverTypeSharpRightTurn")]
115    pub const SharpRightTurn: Self = Self(48);
116    #[doc(alias = "CPManeuverTypeSlightLeftTurn")]
117    pub const SlightLeftTurn: Self = Self(49);
118    #[doc(alias = "CPManeuverTypeSlightRightTurn")]
119    pub const SlightRightTurn: Self = Self(50);
120    #[doc(alias = "CPManeuverTypeChangeHighway")]
121    pub const ChangeHighway: Self = Self(51);
122    #[doc(alias = "CPManeuverTypeChangeHighwayLeft")]
123    pub const ChangeHighwayLeft: Self = Self(52);
124    #[doc(alias = "CPManeuverTypeChangeHighwayRight")]
125    pub const ChangeHighwayRight: Self = Self(53);
126}
127
128unsafe impl Encode for CPManeuverType {
129    const ENCODING: Encoding = NSUInteger::ENCODING;
130}
131
132unsafe impl RefEncode for CPManeuverType {
133    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
134}
135
136/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpjunctiontype?language=objc)
137// NS_ENUM
138#[repr(transparent)]
139#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
140pub struct CPJunctionType(pub NSUInteger);
141impl CPJunctionType {
142    #[doc(alias = "CPJunctionTypeIntersection")]
143    pub const Intersection: Self = Self(0);
144    #[doc(alias = "CPJunctionTypeRoundabout")]
145    pub const Roundabout: Self = Self(1);
146}
147
148unsafe impl Encode for CPJunctionType {
149    const ENCODING: Encoding = NSUInteger::ENCODING;
150}
151
152unsafe impl RefEncode for CPJunctionType {
153    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
154}
155
156/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cptrafficside?language=objc)
157// NS_ENUM
158#[repr(transparent)]
159#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
160pub struct CPTrafficSide(pub NSUInteger);
161impl CPTrafficSide {
162    #[doc(alias = "CPTrafficSideRight")]
163    pub const Right: Self = Self(0);
164    #[doc(alias = "CPTrafficSideLeft")]
165    pub const Left: Self = Self(1);
166}
167
168unsafe impl Encode for CPTrafficSide {
169    const ENCODING: Encoding = NSUInteger::ENCODING;
170}
171
172unsafe impl RefEncode for CPTrafficSide {
173    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
174}
175
176/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpmaneuverstate?language=objc)
177// NS_ENUM
178#[repr(transparent)]
179#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
180pub struct CPManeuverState(pub NSInteger);
181impl CPManeuverState {
182    #[doc(alias = "CPManeuverStateContinue")]
183    pub const Continue: Self = Self(0);
184    #[doc(alias = "CPManeuverStateInitial")]
185    pub const Initial: Self = Self(1);
186    #[doc(alias = "CPManeuverStatePrepare")]
187    pub const Prepare: Self = Self(2);
188    #[doc(alias = "CPManeuverStateExecute")]
189    pub const Execute: Self = Self(3);
190}
191
192unsafe impl Encode for CPManeuverState {
193    const ENCODING: Encoding = NSInteger::ENCODING;
194}
195
196unsafe impl RefEncode for CPManeuverState {
197    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
198}
199
200extern_class!(
201    /// `CPManeuver`describes a navigation instruction.
202    ///
203    /// See also [Apple's documentation](https://developer.apple.com/documentation/carplay/cpmaneuver?language=objc)
204    #[unsafe(super(NSObject))]
205    #[derive(Debug, PartialEq, Eq, Hash)]
206    pub struct CPManeuver;
207);
208
209extern_conformance!(
210    unsafe impl NSCoding for CPManeuver {}
211);
212
213extern_conformance!(
214    unsafe impl NSCopying for CPManeuver {}
215);
216
217unsafe impl CopyingHelper for CPManeuver {
218    type Result = Self;
219}
220
221extern_conformance!(
222    unsafe impl NSObjectProtocol for CPManeuver {}
223);
224
225extern_conformance!(
226    unsafe impl NSSecureCoding for CPManeuver {}
227);
228
229impl CPManeuver {
230    extern_methods!(
231        #[cfg(feature = "CPImageSet")]
232        /// symbolSet is a
233        /// `CPImageSet`representing the maneuver.
234        #[deprecated]
235        #[unsafe(method(symbolSet))]
236        #[unsafe(method_family = none)]
237        pub unsafe fn symbolSet(&self) -> Option<Retained<CPImageSet>>;
238
239        #[cfg(feature = "CPImageSet")]
240        /// Setter for [`symbolSet`][Self::symbolSet].
241        #[deprecated]
242        #[unsafe(method(setSymbolSet:))]
243        #[unsafe(method_family = none)]
244        pub unsafe fn setSymbolSet(&self, symbol_set: Option<&CPImageSet>);
245
246        #[cfg(feature = "objc2-ui-kit")]
247        /// Takes precedence over
248        /// `guidanceBackgroundColor`set in
249        /// `CPMapTemplate.`
250        #[unsafe(method(cardBackgroundColor))]
251        #[unsafe(method_family = none)]
252        pub unsafe fn cardBackgroundColor(&self) -> Option<Retained<UIColor>>;
253
254        #[cfg(feature = "objc2-ui-kit")]
255        /// Setter for [`cardBackgroundColor`][Self::cardBackgroundColor].
256        #[unsafe(method(setCardBackgroundColor:))]
257        #[unsafe(method_family = none)]
258        pub unsafe fn setCardBackgroundColor(&self, card_background_color: Option<&UIColor>);
259
260        #[cfg(feature = "objc2-ui-kit")]
261        /// symbolImage is a
262        /// `UIImage`representing the maneuver. Provide variants for UIUserInterfaceStyleLight and UIUserInterfaceStyleDark that will be used against light backgrounds and dark backgrounds.
263        #[unsafe(method(symbolImage))]
264        #[unsafe(method_family = none)]
265        pub unsafe fn symbolImage(&self) -> Option<Retained<UIImage>>;
266
267        #[cfg(feature = "objc2-ui-kit")]
268        /// Setter for [`symbolImage`][Self::symbolImage].
269        #[unsafe(method(setSymbolImage:))]
270        #[unsafe(method_family = none)]
271        pub unsafe fn setSymbolImage(&self, symbol_image: Option<&UIImage>);
272
273        #[cfg(feature = "objc2-ui-kit")]
274        /// junctionImage is a
275        /// `UIImage`used to display a junction for the maneuver.
276        ///
277        ///
278        /// Note: The maximum image size is 140 points by 100 points. If necessary, images will be scaled down to fit while maintaining the aspect ratio.
279        #[unsafe(method(junctionImage))]
280        #[unsafe(method_family = none)]
281        pub unsafe fn junctionImage(&self) -> Option<Retained<UIImage>>;
282
283        #[cfg(feature = "objc2-ui-kit")]
284        /// Setter for [`junctionImage`][Self::junctionImage].
285        #[unsafe(method(setJunctionImage:))]
286        #[unsafe(method_family = none)]
287        pub unsafe fn setJunctionImage(&self, junction_image: Option<&UIImage>);
288
289        /// instructionVariants is an array of
290        /// `NSString`representing the instruction for this maneuver, arranged from most to least preferred. You must provide at least one variant.
291        /// The variant strings should be provided as localized, displayable content.
292        #[unsafe(method(instructionVariants))]
293        #[unsafe(method_family = none)]
294        pub unsafe fn instructionVariants(&self) -> Retained<NSArray<NSString>>;
295
296        /// Setter for [`instructionVariants`][Self::instructionVariants].
297        ///
298        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
299        #[unsafe(method(setInstructionVariants:))]
300        #[unsafe(method_family = none)]
301        pub unsafe fn setInstructionVariants(&self, instruction_variants: &NSArray<NSString>);
302
303        #[cfg(feature = "CPTravelEstimates")]
304        /// initialTravelEstimates represents the estimates beginning from the end of the preceding maneuver.
305        #[unsafe(method(initialTravelEstimates))]
306        #[unsafe(method_family = none)]
307        pub unsafe fn initialTravelEstimates(&self) -> Option<Retained<CPTravelEstimates>>;
308
309        #[cfg(feature = "CPTravelEstimates")]
310        /// Setter for [`initialTravelEstimates`][Self::initialTravelEstimates].
311        #[unsafe(method(setInitialTravelEstimates:))]
312        #[unsafe(method_family = none)]
313        pub unsafe fn setInitialTravelEstimates(
314            &self,
315            initial_travel_estimates: Option<&CPTravelEstimates>,
316        );
317
318        /// attributedInstructionVariants is an array of
319        /// `NSAttributedString`representing the instruction for this maneuver,
320        /// arranged from most to least preferred.
321        ///
322        /// `attributedInstructionVariants`will be preferred over instructionVariants. You must provide at least one variant for each maneuver.
323        ///
324        /// Only one type of attribute is presently supported: text attachments. You may annotate a maneuver instruction with images
325        /// by including one or more text attachments. The maximum text attachment image size is 64x25 points.
326        ///
327        ///
328        /// Warning: All attributes other than text attachment attributes will be removed from your attributed string.
329        ///
330        ///
331        /// See: +[NSAttributedString attributedStringWithAttachment:], -[NSTextAttachment image]
332        #[unsafe(method(attributedInstructionVariants))]
333        #[unsafe(method_family = none)]
334        pub unsafe fn attributedInstructionVariants(&self)
335            -> Retained<NSArray<NSAttributedString>>;
336
337        /// Setter for [`attributedInstructionVariants`][Self::attributedInstructionVariants].
338        ///
339        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
340        #[unsafe(method(setAttributedInstructionVariants:))]
341        #[unsafe(method_family = none)]
342        pub unsafe fn setAttributedInstructionVariants(
343            &self,
344            attributed_instruction_variants: &NSArray<NSAttributedString>,
345        );
346
347        #[cfg(feature = "objc2-ui-kit")]
348        /// dashboardSymbolImage is a
349        /// `UIImage`representing the maneuver that will be used on the dashboard. Provide variants for UIUserInterfaceStyleLight and UIUserInterfaceStyleDark that will be used against light backgrounds and dark backgrounds. If no dashboard image
350        /// is provided, symbolImage will be used.
351        #[unsafe(method(dashboardSymbolImage))]
352        #[unsafe(method_family = none)]
353        pub unsafe fn dashboardSymbolImage(&self) -> Option<Retained<UIImage>>;
354
355        #[cfg(feature = "objc2-ui-kit")]
356        /// Setter for [`dashboardSymbolImage`][Self::dashboardSymbolImage].
357        #[unsafe(method(setDashboardSymbolImage:))]
358        #[unsafe(method_family = none)]
359        pub unsafe fn setDashboardSymbolImage(&self, dashboard_symbol_image: Option<&UIImage>);
360
361        #[cfg(feature = "objc2-ui-kit")]
362        /// dashboardJunctionImage is a
363        /// `UIImage`used to display a junction for the maneuver on the dashboard. If no dashboard junction image is provided, junctionImage will be used.
364        ///
365        ///
366        /// Note: The maximum image size is 140 points by 100 points. If necessary, images will be scaled down to fit while maintaining the aspect ratio.
367        #[unsafe(method(dashboardJunctionImage))]
368        #[unsafe(method_family = none)]
369        pub unsafe fn dashboardJunctionImage(&self) -> Option<Retained<UIImage>>;
370
371        #[cfg(feature = "objc2-ui-kit")]
372        /// Setter for [`dashboardJunctionImage`][Self::dashboardJunctionImage].
373        #[unsafe(method(setDashboardJunctionImage:))]
374        #[unsafe(method_family = none)]
375        pub unsafe fn setDashboardJunctionImage(&self, dashboard_junction_image: Option<&UIImage>);
376
377        /// dashboardInstructionVariants is an array of
378        /// `NSString`representing the instruction for this maneuver on the dashboard, arranged from most to least preferred. If no dashboard variants are provided, the system will check for attributedInstructionVariants, then instructionVariants.
379        /// The variant strings should be provided as localized, displayable content.
380        #[unsafe(method(dashboardInstructionVariants))]
381        #[unsafe(method_family = none)]
382        pub unsafe fn dashboardInstructionVariants(&self) -> Retained<NSArray<NSString>>;
383
384        /// Setter for [`dashboardInstructionVariants`][Self::dashboardInstructionVariants].
385        ///
386        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
387        #[unsafe(method(setDashboardInstructionVariants:))]
388        #[unsafe(method_family = none)]
389        pub unsafe fn setDashboardInstructionVariants(
390            &self,
391            dashboard_instruction_variants: &NSArray<NSString>,
392        );
393
394        /// dashboardAttributedInstructionVariants is an array of
395        /// `NSAttributedString`representing the instruction for this maneuver on the dashboard,
396        /// arranged from most to least preferred.
397        ///
398        /// `dashboardAttributedInstructionVariants`will be preferred over dashboardInstructionVariants. If no dashboard attributed variants are provided, dashboardInstructionVariants will be used.
399        ///
400        /// Only one type of attribute is presently supported: text attachments. You may annotate a maneuver instruction with images
401        /// by including one or more text attachments. The maximum text attachment image size is 64x25 points.
402        ///
403        ///
404        /// Warning: All attributes other than text attachment attributes will be removed from your attributed string.
405        ///
406        ///
407        /// See: +[NSAttributedString attributedStringWithAttachment:], -[NSTextAttachment image]
408        #[unsafe(method(dashboardAttributedInstructionVariants))]
409        #[unsafe(method_family = none)]
410        pub unsafe fn dashboardAttributedInstructionVariants(
411            &self,
412        ) -> Retained<NSArray<NSAttributedString>>;
413
414        /// Setter for [`dashboardAttributedInstructionVariants`][Self::dashboardAttributedInstructionVariants].
415        ///
416        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
417        #[unsafe(method(setDashboardAttributedInstructionVariants:))]
418        #[unsafe(method_family = none)]
419        pub unsafe fn setDashboardAttributedInstructionVariants(
420            &self,
421            dashboard_attributed_instruction_variants: &NSArray<NSAttributedString>,
422        );
423
424        #[cfg(feature = "objc2-ui-kit")]
425        /// notificationSymbolImage is a
426        /// `UIImage`representing the maneuver that will be used in a notification banner. Provide variants for UIUserInterfaceStyleLight and UIUserInterfaceStyleDark that will be used against light backgrounds and dark backgrounds. If no
427        /// notification symbol image is provided, symbolImage will be used.
428        #[unsafe(method(notificationSymbolImage))]
429        #[unsafe(method_family = none)]
430        pub unsafe fn notificationSymbolImage(&self) -> Option<Retained<UIImage>>;
431
432        #[cfg(feature = "objc2-ui-kit")]
433        /// Setter for [`notificationSymbolImage`][Self::notificationSymbolImage].
434        #[unsafe(method(setNotificationSymbolImage:))]
435        #[unsafe(method_family = none)]
436        pub unsafe fn setNotificationSymbolImage(
437            &self,
438            notification_symbol_image: Option<&UIImage>,
439        );
440
441        /// notificationInstructionVariants is an array of
442        /// `NSString`representing the instruction for this maneuver in a notification banner, arranged from most to least preferred. If no notification instruction variants are provided, the system will check for attributedInstructionVariants, then instructionVariants.
443        /// The variant strings should be provided as localized, displayable content.
444        #[unsafe(method(notificationInstructionVariants))]
445        #[unsafe(method_family = none)]
446        pub unsafe fn notificationInstructionVariants(&self) -> Retained<NSArray<NSString>>;
447
448        /// Setter for [`notificationInstructionVariants`][Self::notificationInstructionVariants].
449        ///
450        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
451        #[unsafe(method(setNotificationInstructionVariants:))]
452        #[unsafe(method_family = none)]
453        pub unsafe fn setNotificationInstructionVariants(
454            &self,
455            notification_instruction_variants: &NSArray<NSString>,
456        );
457
458        /// notificationAttributedInstructionVariants is an array of
459        /// `NSAttributedString`representing the instruction for this maneuver in a notification banner,
460        /// arranged from most to least preferred.
461        ///
462        /// `notificationAttributedInstructionVariants`will be preferred over instructionVariants. If no notification attributed variants are provided, notificationInstructionVariants will be used.
463        ///
464        /// Only one type of attribute is presently supported: text attachments. You may annotate a maneuver instruction with images
465        /// by including one or more text attachments. The maximum text attachment image size is 64x25 points.
466        ///
467        ///
468        /// Warning: All attributes other than text attachment attributes will be removed from your attributed string.
469        ///
470        ///
471        /// See: +[NSAttributedString attributedStringWithAttachment:], -[NSTextAttachment image]
472        #[unsafe(method(notificationAttributedInstructionVariants))]
473        #[unsafe(method_family = none)]
474        pub unsafe fn notificationAttributedInstructionVariants(
475            &self,
476        ) -> Retained<NSArray<NSAttributedString>>;
477
478        /// Setter for [`notificationAttributedInstructionVariants`][Self::notificationAttributedInstructionVariants].
479        ///
480        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
481        #[unsafe(method(setNotificationAttributedInstructionVariants:))]
482        #[unsafe(method_family = none)]
483        pub unsafe fn setNotificationAttributedInstructionVariants(
484            &self,
485            notification_attributed_instruction_variants: &NSArray<NSAttributedString>,
486        );
487
488        /// maneuverType is a
489        /// `CPManeuverType`representing the type of maneuver.
490        #[unsafe(method(maneuverType))]
491        #[unsafe(method_family = none)]
492        pub unsafe fn maneuverType(&self) -> CPManeuverType;
493
494        /// Setter for [`maneuverType`][Self::maneuverType].
495        #[unsafe(method(setManeuverType:))]
496        #[unsafe(method_family = none)]
497        pub unsafe fn setManeuverType(&self, maneuver_type: CPManeuverType);
498
499        /// roadFollowingManeuverVariants is an array of
500        /// `NSString`representing the name of the road following this maneuver,
501        /// arranged from most to least preferred. (arranged by space)
502        #[unsafe(method(roadFollowingManeuverVariants))]
503        #[unsafe(method_family = none)]
504        pub unsafe fn roadFollowingManeuverVariants(&self) -> Option<Retained<NSArray<NSString>>>;
505
506        /// Setter for [`roadFollowingManeuverVariants`][Self::roadFollowingManeuverVariants].
507        ///
508        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
509        #[unsafe(method(setRoadFollowingManeuverVariants:))]
510        #[unsafe(method_family = none)]
511        pub unsafe fn setRoadFollowingManeuverVariants(
512            &self,
513            road_following_maneuver_variants: Option<&NSArray<NSString>>,
514        );
515
516        /// trafficSide is a
517        /// `CPTrafficSide`representing which side of the road the traffic drives on.
518        #[unsafe(method(trafficSide))]
519        #[unsafe(method_family = none)]
520        pub unsafe fn trafficSide(&self) -> CPTrafficSide;
521
522        /// Setter for [`trafficSide`][Self::trafficSide].
523        #[unsafe(method(setTrafficSide:))]
524        #[unsafe(method_family = none)]
525        pub unsafe fn setTrafficSide(&self, traffic_side: CPTrafficSide);
526
527        /// junctionType is a
528        /// `CPJunctionType`representing the type of the junction associated with this maneuver
529        #[unsafe(method(junctionType))]
530        #[unsafe(method_family = none)]
531        pub unsafe fn junctionType(&self) -> CPJunctionType;
532
533        /// Setter for [`junctionType`][Self::junctionType].
534        #[unsafe(method(setJunctionType:))]
535        #[unsafe(method_family = none)]
536        pub unsafe fn setJunctionType(&self, junction_type: CPJunctionType);
537
538        /// junctionExitAngle is the angle of the exit road of this junction.
539        #[unsafe(method(junctionExitAngle))]
540        #[unsafe(method_family = none)]
541        pub unsafe fn junctionExitAngle(&self) -> Option<Retained<NSMeasurement<NSUnitAngle>>>;
542
543        /// Setter for [`junctionExitAngle`][Self::junctionExitAngle].
544        ///
545        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
546        #[unsafe(method(setJunctionExitAngle:))]
547        #[unsafe(method_family = none)]
548        pub unsafe fn setJunctionExitAngle(
549            &self,
550            junction_exit_angle: Option<&NSMeasurement<NSUnitAngle>>,
551        );
552
553        /// junctionElementAngles is a set of angles of the rest of the roads of this junction. This must not include
554        /// `junctionExitAngle`.
555        #[unsafe(method(junctionElementAngles))]
556        #[unsafe(method_family = none)]
557        pub unsafe fn junctionElementAngles(
558            &self,
559        ) -> Option<Retained<NSSet<NSMeasurement<NSUnitAngle>>>>;
560
561        /// Setter for [`junctionElementAngles`][Self::junctionElementAngles].
562        ///
563        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
564        #[unsafe(method(setJunctionElementAngles:))]
565        #[unsafe(method_family = none)]
566        pub unsafe fn setJunctionElementAngles(
567            &self,
568            junction_element_angles: Option<&NSSet<NSMeasurement<NSUnitAngle>>>,
569        );
570
571        #[cfg(feature = "CPLaneGuidance")]
572        /// linkedLaneGuidance is the optional
573        /// `CPLaneGuidance`associated with this maneuver // conditional - must be there if there is a corresponding lane guidance
574        ///
575        /// # Safety
576        ///
577        /// This is not retained internally, you must ensure the object is still alive.
578        #[unsafe(method(linkedLaneGuidance))]
579        #[unsafe(method_family = none)]
580        pub unsafe fn linkedLaneGuidance(&self) -> Retained<CPLaneGuidance>;
581
582        #[cfg(feature = "CPLaneGuidance")]
583        /// Setter for [`linkedLaneGuidance`][Self::linkedLaneGuidance].
584        ///
585        /// # Safety
586        ///
587        /// This is unretained, you must ensure the object is kept alive while in use.
588        #[unsafe(method(setLinkedLaneGuidance:))]
589        #[unsafe(method_family = none)]
590        pub unsafe fn setLinkedLaneGuidance(&self, linked_lane_guidance: &CPLaneGuidance);
591
592        /// highwayExitLabel is a
593        /// `NSString`describing a highway exit. Exit 123 for example.
594        #[unsafe(method(highwayExitLabel))]
595        #[unsafe(method_family = none)]
596        pub unsafe fn highwayExitLabel(&self) -> Retained<NSString>;
597
598        /// Setter for [`highwayExitLabel`][Self::highwayExitLabel].
599        ///
600        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
601        #[unsafe(method(setHighwayExitLabel:))]
602        #[unsafe(method_family = none)]
603        pub unsafe fn setHighwayExitLabel(&self, highway_exit_label: &NSString);
604
605        /// Any custom user info related to this maneuver.
606        #[unsafe(method(userInfo))]
607        #[unsafe(method_family = none)]
608        pub unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>;
609
610        /// Setter for [`userInfo`][Self::userInfo].
611        ///
612        /// # Safety
613        ///
614        /// `user_info` should be of the correct type.
615        #[unsafe(method(setUserInfo:))]
616        #[unsafe(method_family = none)]
617        pub unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>);
618    );
619}
620
621/// Methods declared on superclass `NSObject`.
622impl CPManeuver {
623    extern_methods!(
624        #[unsafe(method(init))]
625        #[unsafe(method_family = init)]
626        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
627
628        #[unsafe(method(new))]
629        #[unsafe(method_family = new)]
630        pub unsafe fn new() -> Retained<Self>;
631    );
632}