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!(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 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 moresourcefn 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 moresourcefn 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) -> CFTypewhere
Self: Sized,
fn into_CFType(self) -> CFTypewhere
Self: Sized,
Returns the object as a wrapped
CFType
. Consumes self and avoids changing the reference
count. Read moresourcefn 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 Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more