use super::DeploymentPlatform;
use objc2::rc::{Allocated, Retained};
use objc2::runtime::NSObject;
use objc2::{extern_class, extern_conformance, extern_methods};
use objc2_foundation::{NSObjectProtocol, NSString};
use crate::GraphObject;
extern_class!(
#[unsafe(super(GraphObject, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[name = "MPSGraphExecutableSerializationDescriptor"]
pub struct ExecutableSerializationDescriptor;
);
extern_conformance!(
unsafe impl NSObjectProtocol for ExecutableSerializationDescriptor {}
);
impl ExecutableSerializationDescriptor {
extern_methods!(
#[unsafe(method(append))]
#[unsafe(method_family = none)]
pub fn append(&self) -> bool;
#[unsafe(method(setAppend:))]
#[unsafe(method_family = none)]
pub fn set_append(&self, append: bool);
#[unsafe(method(deploymentPlatform))]
#[unsafe(method_family = none)]
pub fn deployment_platform(&self) -> DeploymentPlatform;
#[unsafe(method(setDeploymentPlatform:))]
#[unsafe(method_family = none)]
pub fn set_deployment_platform(&self, deployment_platform: DeploymentPlatform);
#[unsafe(method(minimumDeploymentTarget))]
#[unsafe(method_family = none)]
pub fn minimum_deployment_target(&self) -> Retained<NSString>;
#[unsafe(method(setMinimumDeploymentTarget:))]
#[unsafe(method_family = none)]
pub fn set_minimum_deployment_target(&self, minimum_deployment_target: &NSString);
);
}
impl ExecutableSerializationDescriptor {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}