//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;

use crate::*;

extern_protocol!(
    /// Base class for Metal allocations.
    ///
    /// This protocol provides a common interface for adding Metal resources to ``MTLResidencySet`` instances. Call
    /// ``MTLResidencySet/addAllocation:`` to add a Metal resource allocation to a residency set.
    ///
    /// <doc
    /// :simplifying-gpu-resource-management-with-residency-sets.md>
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtlallocation?language=objc)
    pub unsafe trait MTLAllocation: NSObjectProtocol {
        #[unsafe(method(allocatedSize))]
        #[unsafe(method_family = none)]
        fn allocatedSize(&self) -> NSUInteger;
    }
);
