[][src]Struct core_foundation::base::CFType

pub struct CFType(_);

Superclass of all Core Foundation objects.

Implementations

impl CFType[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());
This example deliberately fails to compile
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]

Similar to downcast, but consumes self and can thus avoid touching the retain count.

Trait Implementations

impl Clone for CFType[src]

impl Debug for CFType[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using CFCopyDescription.

impl Drop for CFType[src]

impl PartialEq<CFType> for CFType[src]

impl TCFType for CFType[src]

type Ref = CFTypeRef

The reference type wrapped inside this type.

impl<'a> ToVoid<CFType> for &'a CFType[src]

impl ToVoid<CFType> for CFType[src]

impl ToVoid<CFType> for CFTypeRef[src]

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> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FromMutVoid for T where
    T: TCFType
[src]

impl<T> FromVoid for T where
    T: TCFType
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.