Struct core_foundation::base::CFType [−][src]
pub struct CFType(_);
Expand description
Superclass of all Core Foundation objects.
Implementations
impl CFType
[src]
impl CFType
[src]pub fn downcast<T: ConcreteCFType>(&self) -> Option<T>
[src]
pub fn downcast<T: ConcreteCFType>(&self) -> Option<T>
[src]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();
pub fn downcast_into<T: ConcreteCFType>(self) -> Option<T>
[src]
pub fn downcast_into<T: ConcreteCFType>(self) -> Option<T>
[src]Similar to downcast
, but consumes self and can thus avoid touching the retain count.
Trait Implementations
impl Debug for CFType
[src]
impl Debug for CFType
[src]fn fmt(&self, f: &mut Formatter<'_>) -> Result
[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result
[src]Formats the value using CFCopyDescription
.
impl TCFType for CFType
[src]
impl TCFType for CFType
[src]fn as_concrete_TypeRef(&self) -> CFTypeRef
[src]
fn as_concrete_TypeRef(&self) -> CFTypeRef
[src]Returns the object as its concrete TypeRef.
unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType
[src]
unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType
[src]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
fn as_CFTypeRef(&self) -> CFTypeRef
[src]
fn as_CFTypeRef(&self) -> CFTypeRef
[src]Returns the object as a raw CFTypeRef
. The reference count is not adjusted.
unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType
[src]
unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType
[src]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
fn as_CFType(&self) -> CFType
[src]
fn as_CFType(&self) -> CFType
[src]Returns the object as a wrapped CFType
. The reference count is incremented by one.
fn into_CFType(self) -> CFType where
Self: Sized,
[src]
fn into_CFType(self) -> CFType where
Self: Sized,
[src]Returns the object as a wrapped CFType
. Consumes self and avoids changing the reference
count. Read more
fn retain_count(&self) -> CFIndex
[src]
fn retain_count(&self) -> CFIndex
[src]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
fn instance_of<OtherCFType: TCFType>(&self) -> bool
[src]
fn instance_of<OtherCFType: TCFType>(&self) -> bool
[src]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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> FromMutVoid for T where
T: TCFType,
[src]
impl<T> FromMutVoid for T where
T: TCFType,
[src]pub unsafe fn from_mut_void<'a>(*mut c_void) -> ItemMutRef<'a, T>
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more