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

pub struct CFType(_);

Superclass of all Core Foundation objects.

Methods

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 TCFType for CFType[src]

type Ref = CFTypeRef

The reference type wrapped inside this type.

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]

Returns the object as a wrapped CFType. Consumes self and avoids changing the reference count. Read more

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 type_of(&self) -> CFTypeID[src]

Returns the type ID of this object.

fn show(&self)[src]

Writes a debugging version of this object on standard error.

fn instance_of<OtherCFType: TCFType>(&self) -> bool[src]

Returns true if this value is an instance of another type.

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

impl ToVoid<CFType> for CFType[src]

impl ToVoid<CFType> for CFTypeRef[src]

impl Drop for CFType[src]

impl PartialEq<CFType> for CFType[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl Clone for CFType[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for CFType[src]

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

Formats the value using CFCopyDescription.

Auto Trait Implementations

impl !Send for CFType

impl !Sync for CFType

Blanket Implementations

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

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

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

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

type Owned = T

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

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

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

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

The type returned in the event of a conversion error.