[−][src]Struct core_foundation::base::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.
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]
fn into_CFType(self) -> CFType where
Self: Sized,
[src]
Self: Sized,
fn retain_count(&self) -> CFIndex
[src]
fn type_of(&self) -> CFTypeID
[src]
fn show(&self)
[src]
fn instance_of<OtherCFType: TCFType>(&self) -> bool
[src]
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
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<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> 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, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,