Struct core_foundation::base::CFType
source · [−]pub struct CFType(_);
Expand description
Superclass of all Core Foundation objects.
Implementations
sourceimpl CFType
impl CFType
sourcepub fn downcast<T: ConcreteCFType>(&self) -> Option<T>
pub fn downcast<T: ConcreteCFType>(&self) -> Option<T>
Try to downcast the CFType
to a subclass. Checking if the instance is the
correct subclass happens at runtime and None
is returned if it is not the correct type.
Works similar to Box::downcast
and CFPropertyList::downcast
.
Examples
// Create a string.
let string: CFString = CFString::from_static_string("FooBar");
// Cast it up to a CFType.
let cf_type: CFType = string.as_CFType();
// Cast it down again.
assert_eq!(cf_type.downcast::<CFString>().unwrap().to_string(), "FooBar");
// Casting it to some other type will yield `None`
assert!(cf_type.downcast::<CFBoolean>().is_none());
let boolean_array = CFArray::from_CFTypes(&[CFBoolean::true_value()]).into_CFType();
// This downcast is not allowed and causes compiler error, since it would cause undefined
// behavior to access the elements of the array as a CFString:
let invalid_string_array = boolean_array
.downcast_into::<CFArray<CFString>>()
.unwrap();
sourcepub fn downcast_into<T: ConcreteCFType>(self) -> Option<T>
pub fn downcast_into<T: ConcreteCFType>(self) -> Option<T>
Similar to downcast
, but consumes self and can thus avoid touching the retain count.
Trait Implementations
sourceimpl Debug for CFType
impl Debug for CFType
sourcefn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using CFCopyDescription
.
sourceimpl TCFType for CFType
impl TCFType for CFType
sourcefn as_concrete_TypeRef(&self) -> CFTypeRef
fn as_concrete_TypeRef(&self) -> CFTypeRef
Returns the object as its concrete TypeRef.
sourceunsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType
unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType
Returns an instance of the object, wrapping the underlying CFTypeRef
subclass. Use this
when following Core Foundation’s “Get Rule”. The reference count is bumped. Read more
sourcefn as_CFTypeRef(&self) -> CFTypeRef
fn as_CFTypeRef(&self) -> CFTypeRef
Returns the object as a raw CFTypeRef
. The reference count is not adjusted.
sourceunsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType
unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType
Returns an instance of the object, wrapping the underlying CFTypeRef
subclass. Use this
when following Core Foundation’s “Create Rule”. The reference count is not bumped. Read more
sourcefn as_CFType(&self) -> CFType
fn as_CFType(&self) -> CFType
Returns the object as a wrapped CFType
. The reference count is incremented by one.
sourcefn into_CFType(self) -> CFType where
Self: Sized,
fn into_CFType(self) -> CFType where
Self: Sized,
Returns the object as a wrapped CFType
. Consumes self and avoids changing the reference
count. Read more
sourcefn retain_count(&self) -> CFIndex
fn retain_count(&self) -> CFIndex
Returns the reference count of the object. It is unwise to do anything other than test whether the return value of this method is greater than zero. Read more
sourcefn instance_of<OtherCFType: TCFType>(&self) -> bool
fn instance_of<OtherCFType: TCFType>(&self) -> bool
Returns true if this value is an instance of another type.
Auto Trait Implementations
impl RefUnwindSafe for CFType
impl !Send for CFType
impl !Sync for CFType
impl Unpin for CFType
impl UnwindSafe for CFType
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FromMutVoid for T where
T: TCFType,
impl<T> FromMutVoid for T where
T: TCFType,
unsafe fn from_mut_void<'a>(x: *mut c_void) -> ItemMutRef<'a, Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more