fruity__bbqsrc/objc/
object_type.rs

1use super::{Class, ObjCObject};
2
3/// An Objective-C object instance.
4///
5/// # Related Items
6///
7/// - [`objc::ClassType`](crate::objc::ClassType)
8/// - [`core::ObjectType`](crate::core::ObjectType)
9pub trait ObjectType<'data>: 'data + crate::core::ObjectType + AsRef<ObjCObject<'data>> {
10    /// Casts `self` into a type-erased Objective-C object.
11    #[inline]
12    fn as_objc_object(&self) -> &ObjCObject<'data> {
13        self.as_ref()
14    }
15
16    /// Returns the class that this object is an instance of.
17    #[inline]
18    fn class<'s>(&'s self) -> &'s Class
19    where
20        'data: 's,
21    {
22        self.as_objc_object().class()
23    }
24}