objc2-virtualization 0.3.2

Bindings to the Virtualization framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_protocol!(
    /// Protocol for USB Device configuration.
    ///
    /// Classes that conform to this protocol represent hot-pluggable USB device configurations.
    /// VZUSBDeviceConfiguration protocol should not be used with objects outside of Virtualization framework.
    /// This protocol only describes capabilities of Virtualization framework objects.
    ///
    /// See: VZUSBMassStorageDeviceConfiguration
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/virtualization/vzusbdeviceconfiguration?language=objc)
    pub unsafe trait VZUSBDeviceConfiguration: NSObjectProtocol {
        /// Device UUID.
        ///
        /// Device UUID is auto-generated.
        /// Before restoring the virtual machine, it should be replaced with the uuid of a previously attached device when the virtual machine was saved.
        #[unsafe(method(uuid))]
        #[unsafe(method_family = none)]
        unsafe fn uuid(&self) -> Retained<NSUUID>;

        /// Setter for [`uuid`][Self::uuid].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setUuid:))]
        #[unsafe(method_family = none)]
        unsafe fn setUuid(&self, uuid: &NSUUID);
    }
);