[−][src]Struct core_foundation::base::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());
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_concrete_TypeRef(&self) -> CFTypeRef
[src]
unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType
[src]
fn as_CFTypeRef(&self) -> CFTypeRef
[src]
unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType
[src]
fn type_id() -> CFTypeID
[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]
Self: Sized,
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]
fn eq(&self, other: &CFType) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Clone for CFType
[src]
fn clone(&self) -> 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
Blanket Implementations
impl<T> FromMutVoid for T where
T: TCFType,
[src]
T: TCFType,
unsafe fn from_mut_void<'a>(*mut c_void) -> ItemMutRef<'a, T>
[src]
impl<T> FromVoid for T where
T: TCFType,
[src]
T: TCFType,
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,