use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-ui-kit")]
use objc2_ui_kit::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CPManeuverType(pub NSUInteger);
impl CPManeuverType {
#[doc(alias = "CPManeuverTypeNoTurn")]
pub const NoTurn: Self = Self(0);
#[doc(alias = "CPManeuverTypeLeftTurn")]
pub const LeftTurn: Self = Self(1);
#[doc(alias = "CPManeuverTypeRightTurn")]
pub const RightTurn: Self = Self(2);
#[doc(alias = "CPManeuverTypeStraightAhead")]
pub const StraightAhead: Self = Self(3);
#[doc(alias = "CPManeuverTypeUTurn")]
pub const UTurn: Self = Self(4);
#[doc(alias = "CPManeuverTypeFollowRoad")]
pub const FollowRoad: Self = Self(5);
#[doc(alias = "CPManeuverTypeEnterRoundabout")]
pub const EnterRoundabout: Self = Self(6);
#[doc(alias = "CPManeuverTypeExitRoundabout")]
pub const ExitRoundabout: Self = Self(7);
#[doc(alias = "CPManeuverTypeOffRamp")]
pub const OffRamp: Self = Self(8);
#[doc(alias = "CPManeuverTypeOnRamp")]
pub const OnRamp: Self = Self(9);
#[doc(alias = "CPManeuverTypeArriveEndOfNavigation")]
pub const ArriveEndOfNavigation: Self = Self(10);
#[doc(alias = "CPManeuverTypeStartRoute")]
pub const StartRoute: Self = Self(11);
#[doc(alias = "CPManeuverTypeArriveAtDestination")]
pub const ArriveAtDestination: Self = Self(12);
#[doc(alias = "CPManeuverTypeKeepLeft")]
pub const KeepLeft: Self = Self(13);
#[doc(alias = "CPManeuverTypeKeepRight")]
pub const KeepRight: Self = Self(14);
#[doc(alias = "CPManeuverTypeEnter_Ferry")]
pub const Enter_Ferry: Self = Self(15);
#[doc(alias = "CPManeuverTypeExitFerry")]
pub const ExitFerry: Self = Self(16);
#[doc(alias = "CPManeuverTypeChangeFerry")]
pub const ChangeFerry: Self = Self(17);
#[doc(alias = "CPManeuverTypeStartRouteWithUTurn")]
pub const StartRouteWithUTurn: Self = Self(18);
#[doc(alias = "CPManeuverTypeUTurnAtRoundabout")]
pub const UTurnAtRoundabout: Self = Self(19);
#[doc(alias = "CPManeuverTypeLeftTurnAtEnd")]
pub const LeftTurnAtEnd: Self = Self(20);
#[doc(alias = "CPManeuverTypeRightTurnAtEnd")]
pub const RightTurnAtEnd: Self = Self(21);
#[doc(alias = "CPManeuverTypeHighwayOffRampLeft")]
pub const HighwayOffRampLeft: Self = Self(22);
#[doc(alias = "CPManeuverTypeHighwayOffRampRight")]
pub const HighwayOffRampRight: Self = Self(23);
#[doc(alias = "CPManeuverTypeArriveAtDestinationLeft")]
pub const ArriveAtDestinationLeft: Self = Self(24);
#[doc(alias = "CPManeuverTypeArriveAtDestinationRight")]
pub const ArriveAtDestinationRight: Self = Self(25);
#[doc(alias = "CPManeuverTypeUTurnWhenPossible")]
pub const UTurnWhenPossible: Self = Self(26);
#[doc(alias = "CPManeuverTypeArriveEndOfDirections")]
pub const ArriveEndOfDirections: Self = Self(27);
#[doc(alias = "CPManeuverTypeRoundaboutExit1")]
pub const RoundaboutExit1: Self = Self(28);
#[doc(alias = "CPManeuverTypeRoundaboutExit2")]
pub const RoundaboutExit2: Self = Self(29);
#[doc(alias = "CPManeuverTypeRoundaboutExit3")]
pub const RoundaboutExit3: Self = Self(30);
#[doc(alias = "CPManeuverTypeRoundaboutExit4")]
pub const RoundaboutExit4: Self = Self(31);
#[doc(alias = "CPManeuverTypeRoundaboutExit5")]
pub const RoundaboutExit5: Self = Self(32);
#[doc(alias = "CPManeuverTypeRoundaboutExit6")]
pub const RoundaboutExit6: Self = Self(33);
#[doc(alias = "CPManeuverTypeRoundaboutExit7")]
pub const RoundaboutExit7: Self = Self(34);
#[doc(alias = "CPManeuverTypeRoundaboutExit8")]
pub const RoundaboutExit8: Self = Self(35);
#[doc(alias = "CPManeuverTypeRoundaboutExit9")]
pub const RoundaboutExit9: Self = Self(36);
#[doc(alias = "CPManeuverTypeRoundaboutExit10")]
pub const RoundaboutExit10: Self = Self(37);
#[doc(alias = "CPManeuverTypeRoundaboutExit11")]
pub const RoundaboutExit11: Self = Self(38);
#[doc(alias = "CPManeuverTypeRoundaboutExit12")]
pub const RoundaboutExit12: Self = Self(39);
#[doc(alias = "CPManeuverTypeRoundaboutExit13")]
pub const RoundaboutExit13: Self = Self(40);
#[doc(alias = "CPManeuverTypeRoundaboutExit14")]
pub const RoundaboutExit14: Self = Self(41);
#[doc(alias = "CPManeuverTypeRoundaboutExit15")]
pub const RoundaboutExit15: Self = Self(42);
#[doc(alias = "CPManeuverTypeRoundaboutExit16")]
pub const RoundaboutExit16: Self = Self(43);
#[doc(alias = "CPManeuverTypeRoundaboutExit17")]
pub const RoundaboutExit17: Self = Self(44);
#[doc(alias = "CPManeuverTypeRoundaboutExit18")]
pub const RoundaboutExit18: Self = Self(45);
#[doc(alias = "CPManeuverTypeRoundaboutExit19")]
pub const RoundaboutExit19: Self = Self(46);
#[doc(alias = "CPManeuverTypeSharpLeftTurn")]
pub const SharpLeftTurn: Self = Self(47);
#[doc(alias = "CPManeuverTypeSharpRightTurn")]
pub const SharpRightTurn: Self = Self(48);
#[doc(alias = "CPManeuverTypeSlightLeftTurn")]
pub const SlightLeftTurn: Self = Self(49);
#[doc(alias = "CPManeuverTypeSlightRightTurn")]
pub const SlightRightTurn: Self = Self(50);
#[doc(alias = "CPManeuverTypeChangeHighway")]
pub const ChangeHighway: Self = Self(51);
#[doc(alias = "CPManeuverTypeChangeHighwayLeft")]
pub const ChangeHighwayLeft: Self = Self(52);
#[doc(alias = "CPManeuverTypeChangeHighwayRight")]
pub const ChangeHighwayRight: Self = Self(53);
}
unsafe impl Encode for CPManeuverType {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for CPManeuverType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CPJunctionType(pub NSUInteger);
impl CPJunctionType {
#[doc(alias = "CPJunctionTypeIntersection")]
pub const Intersection: Self = Self(0);
#[doc(alias = "CPJunctionTypeRoundabout")]
pub const Roundabout: Self = Self(1);
}
unsafe impl Encode for CPJunctionType {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for CPJunctionType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CPTrafficSide(pub NSUInteger);
impl CPTrafficSide {
#[doc(alias = "CPTrafficSideRight")]
pub const Right: Self = Self(0);
#[doc(alias = "CPTrafficSideLeft")]
pub const Left: Self = Self(1);
}
unsafe impl Encode for CPTrafficSide {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for CPTrafficSide {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CPManeuverState(pub NSInteger);
impl CPManeuverState {
#[doc(alias = "CPManeuverStateContinue")]
pub const Continue: Self = Self(0);
#[doc(alias = "CPManeuverStateInitial")]
pub const Initial: Self = Self(1);
#[doc(alias = "CPManeuverStatePrepare")]
pub const Prepare: Self = Self(2);
#[doc(alias = "CPManeuverStateExecute")]
pub const Execute: Self = Self(3);
}
unsafe impl Encode for CPManeuverState {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for CPManeuverState {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CPManeuver;
);
extern_conformance!(
unsafe impl NSCoding for CPManeuver {}
);
extern_conformance!(
unsafe impl NSCopying for CPManeuver {}
);
unsafe impl CopyingHelper for CPManeuver {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for CPManeuver {}
);
extern_conformance!(
unsafe impl NSSecureCoding for CPManeuver {}
);
impl CPManeuver {
extern_methods!(
#[cfg(feature = "CPImageSet")]
#[deprecated]
#[unsafe(method(symbolSet))]
#[unsafe(method_family = none)]
pub unsafe fn symbolSet(&self) -> Option<Retained<CPImageSet>>;
#[cfg(feature = "CPImageSet")]
#[deprecated]
#[unsafe(method(setSymbolSet:))]
#[unsafe(method_family = none)]
pub unsafe fn setSymbolSet(&self, symbol_set: Option<&CPImageSet>);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(cardBackgroundColor))]
#[unsafe(method_family = none)]
pub unsafe fn cardBackgroundColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setCardBackgroundColor:))]
#[unsafe(method_family = none)]
pub unsafe fn setCardBackgroundColor(&self, card_background_color: Option<&UIColor>);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(symbolImage))]
#[unsafe(method_family = none)]
pub unsafe fn symbolImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setSymbolImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setSymbolImage(&self, symbol_image: Option<&UIImage>);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(junctionImage))]
#[unsafe(method_family = none)]
pub unsafe fn junctionImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setJunctionImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setJunctionImage(&self, junction_image: Option<&UIImage>);
#[unsafe(method(instructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn instructionVariants(&self) -> Retained<NSArray<NSString>>;
#[unsafe(method(setInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setInstructionVariants(&self, instruction_variants: &NSArray<NSString>);
#[cfg(feature = "CPTravelEstimates")]
#[unsafe(method(initialTravelEstimates))]
#[unsafe(method_family = none)]
pub unsafe fn initialTravelEstimates(&self) -> Option<Retained<CPTravelEstimates>>;
#[cfg(feature = "CPTravelEstimates")]
#[unsafe(method(setInitialTravelEstimates:))]
#[unsafe(method_family = none)]
pub unsafe fn setInitialTravelEstimates(
&self,
initial_travel_estimates: Option<&CPTravelEstimates>,
);
#[unsafe(method(attributedInstructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn attributedInstructionVariants(&self)
-> Retained<NSArray<NSAttributedString>>;
#[unsafe(method(setAttributedInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setAttributedInstructionVariants(
&self,
attributed_instruction_variants: &NSArray<NSAttributedString>,
);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(dashboardSymbolImage))]
#[unsafe(method_family = none)]
pub unsafe fn dashboardSymbolImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setDashboardSymbolImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setDashboardSymbolImage(&self, dashboard_symbol_image: Option<&UIImage>);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(dashboardJunctionImage))]
#[unsafe(method_family = none)]
pub unsafe fn dashboardJunctionImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setDashboardJunctionImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setDashboardJunctionImage(&self, dashboard_junction_image: Option<&UIImage>);
#[unsafe(method(dashboardInstructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn dashboardInstructionVariants(&self) -> Retained<NSArray<NSString>>;
#[unsafe(method(setDashboardInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setDashboardInstructionVariants(
&self,
dashboard_instruction_variants: &NSArray<NSString>,
);
#[unsafe(method(dashboardAttributedInstructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn dashboardAttributedInstructionVariants(
&self,
) -> Retained<NSArray<NSAttributedString>>;
#[unsafe(method(setDashboardAttributedInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setDashboardAttributedInstructionVariants(
&self,
dashboard_attributed_instruction_variants: &NSArray<NSAttributedString>,
);
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(notificationSymbolImage))]
#[unsafe(method_family = none)]
pub unsafe fn notificationSymbolImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "objc2-ui-kit")]
#[unsafe(method(setNotificationSymbolImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setNotificationSymbolImage(
&self,
notification_symbol_image: Option<&UIImage>,
);
#[unsafe(method(notificationInstructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn notificationInstructionVariants(&self) -> Retained<NSArray<NSString>>;
#[unsafe(method(setNotificationInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setNotificationInstructionVariants(
&self,
notification_instruction_variants: &NSArray<NSString>,
);
#[unsafe(method(notificationAttributedInstructionVariants))]
#[unsafe(method_family = none)]
pub unsafe fn notificationAttributedInstructionVariants(
&self,
) -> Retained<NSArray<NSAttributedString>>;
#[unsafe(method(setNotificationAttributedInstructionVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setNotificationAttributedInstructionVariants(
&self,
notification_attributed_instruction_variants: &NSArray<NSAttributedString>,
);
#[unsafe(method(maneuverType))]
#[unsafe(method_family = none)]
pub unsafe fn maneuverType(&self) -> CPManeuverType;
#[unsafe(method(setManeuverType:))]
#[unsafe(method_family = none)]
pub unsafe fn setManeuverType(&self, maneuver_type: CPManeuverType);
#[unsafe(method(roadFollowingManeuverVariants))]
#[unsafe(method_family = none)]
pub unsafe fn roadFollowingManeuverVariants(&self) -> Option<Retained<NSArray<NSString>>>;
#[unsafe(method(setRoadFollowingManeuverVariants:))]
#[unsafe(method_family = none)]
pub unsafe fn setRoadFollowingManeuverVariants(
&self,
road_following_maneuver_variants: Option<&NSArray<NSString>>,
);
#[unsafe(method(trafficSide))]
#[unsafe(method_family = none)]
pub unsafe fn trafficSide(&self) -> CPTrafficSide;
#[unsafe(method(setTrafficSide:))]
#[unsafe(method_family = none)]
pub unsafe fn setTrafficSide(&self, traffic_side: CPTrafficSide);
#[unsafe(method(junctionType))]
#[unsafe(method_family = none)]
pub unsafe fn junctionType(&self) -> CPJunctionType;
#[unsafe(method(setJunctionType:))]
#[unsafe(method_family = none)]
pub unsafe fn setJunctionType(&self, junction_type: CPJunctionType);
#[unsafe(method(junctionExitAngle))]
#[unsafe(method_family = none)]
pub unsafe fn junctionExitAngle(&self) -> Option<Retained<NSMeasurement<NSUnitAngle>>>;
#[unsafe(method(setJunctionExitAngle:))]
#[unsafe(method_family = none)]
pub unsafe fn setJunctionExitAngle(
&self,
junction_exit_angle: Option<&NSMeasurement<NSUnitAngle>>,
);
#[unsafe(method(junctionElementAngles))]
#[unsafe(method_family = none)]
pub unsafe fn junctionElementAngles(
&self,
) -> Option<Retained<NSSet<NSMeasurement<NSUnitAngle>>>>;
#[unsafe(method(setJunctionElementAngles:))]
#[unsafe(method_family = none)]
pub unsafe fn setJunctionElementAngles(
&self,
junction_element_angles: Option<&NSSet<NSMeasurement<NSUnitAngle>>>,
);
#[cfg(feature = "CPLaneGuidance")]
#[unsafe(method(linkedLaneGuidance))]
#[unsafe(method_family = none)]
pub unsafe fn linkedLaneGuidance(&self) -> Retained<CPLaneGuidance>;
#[cfg(feature = "CPLaneGuidance")]
#[unsafe(method(setLinkedLaneGuidance:))]
#[unsafe(method_family = none)]
pub unsafe fn setLinkedLaneGuidance(&self, linked_lane_guidance: &CPLaneGuidance);
#[unsafe(method(highwayExitLabel))]
#[unsafe(method_family = none)]
pub unsafe fn highwayExitLabel(&self) -> Retained<NSString>;
#[unsafe(method(setHighwayExitLabel:))]
#[unsafe(method_family = none)]
pub unsafe fn setHighwayExitLabel(&self, highway_exit_label: &NSString);
#[unsafe(method(userInfo))]
#[unsafe(method_family = none)]
pub unsafe fn userInfo(&self) -> Option<Retained<AnyObject>>;
#[unsafe(method(setUserInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn setUserInfo(&self, user_info: Option<&AnyObject>);
);
}
impl CPManeuver {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}