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

pub struct CFType(_);
Expand description

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());
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]

fn clone(&self) -> CFType[src]

Returns a copy of the value. Read more

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.

impl Drop for CFType[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl PartialEq<CFType> for CFType[src]

fn eq(&self, other: &CFType) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

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

This method tests for !=.

impl TCFType for CFType[src]

type Ref = CFTypeRef

The reference type wrapped inside this type.

fn as_concrete_TypeRef(&self) -> CFTypeRef[src]

Returns the object as its concrete TypeRef.

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]

Returns the object as a raw CFTypeRef. The reference count is not adjusted.

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 type_id() -> CFTypeID[src]

Returns the type ID for this class.

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]

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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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> FromVoid for T where
    T: TCFType
[src]

pub unsafe fn from_void<'a>(*const c_void) -> ItemRef<'a, T>[src]

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

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]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.