Struct core_foundation::base::CFType
source · pub struct CFType(_);
Expand description
Superclass of all Core Foundation objects.
Implementations§
source§impl 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§
source§impl PartialEq<CFType> for CFType
impl PartialEq<CFType> for CFType
source§impl TCFType for CFType
impl TCFType for CFType
source§fn as_concrete_TypeRef(&self) -> CFTypeRef
fn as_concrete_TypeRef(&self) -> CFTypeRef
Returns the object as its concrete TypeRef.
source§unsafe 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.source§fn as_CFTypeRef(&self) -> CFTypeRef
fn as_CFTypeRef(&self) -> CFTypeRef
Returns the object as a raw
CFTypeRef
. The reference count is not adjusted.source§unsafe 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.source§fn as_CFType(&self) -> CFType
fn as_CFType(&self) -> CFType
Returns the object as a wrapped
CFType
. The reference count is incremented by one.source§fn 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.source§fn 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.
source§fn 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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more