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}