pub trait TCFType {
    type Ref: TCFTypeRef;

    // Required methods
    fn as_concrete_TypeRef(&self) -> Self::Ref;
    unsafe fn wrap_under_create_rule(obj: Self::Ref) -> Self;
    fn type_id() -> CFTypeID;
    fn as_CFTypeRef(&self) -> CFTypeRef;
    unsafe fn wrap_under_get_rule(reference: Self::Ref) -> Self;

    // Provided methods
    fn as_CFType(&self) -> CFType { ... }
    fn into_CFType(self) -> CFType
       where Self: Sized { ... }
    fn retain_count(&self) -> CFIndex { ... }
    fn type_of(&self) -> CFTypeID { ... }
    fn show(&self) { ... }
    fn instance_of<OtherCFType: TCFType>(&self) -> bool { ... }
}
Expand description

All Core Foundation types implement this trait. The associated type Ref specifies the associated Core Foundation type: e.g. for CFType this is CFTypeRef; for CFArray this is CFArrayRef.

Most structs that implement this trait will do so via the impl_TCFType macro.

Required Associated Types§

source

type Ref: TCFTypeRef

The reference type wrapped inside this type.

Required Methods§

source

fn as_concrete_TypeRef(&self) -> Self::Ref

Returns the object as its concrete TypeRef.

source

unsafe fn wrap_under_create_rule(obj: Self::Ref) -> Self

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.

source

fn type_id() -> CFTypeID

Returns the type ID for this class.

source

fn as_CFTypeRef(&self) -> CFTypeRef

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

source

unsafe fn wrap_under_get_rule(reference: Self::Ref) -> Self

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.

Provided Methods§

source

fn as_CFType(&self) -> CFType

Returns the object as a wrapped CFType. The reference count is incremented by one.

source

fn into_CFType(self) -> CFTypewhere Self: Sized,

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

source

fn retain_count(&self) -> CFIndex

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.

source

fn type_of(&self) -> CFTypeID

Returns the type ID of this object.

source

fn show(&self)

Writes a debugging version of this object on standard error.

source

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

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

Object Safety§

This trait is not object safe.

Implementors§

source§

impl TCFType for CFAttributedString

source§

impl TCFType for CFMutableAttributedString

source§

impl TCFType for CFBoolean

source§

impl TCFType for CFBundle

source§

impl TCFType for CFCharacterSet

source§

impl TCFType for CFData

source§

impl TCFType for CFDate

source§

impl TCFType for CFError

source§

impl TCFType for CFFileDescriptor

source§

impl TCFType for CFMachPort

source§

impl TCFType for CFNumber

source§

impl TCFType for CFRunLoop

source§

impl TCFType for CFRunLoopObserver

source§

impl TCFType for CFRunLoopSource

source§

impl TCFType for CFRunLoopTimer

source§

impl TCFType for CFString

source§

impl TCFType for CFTimeZone

source§

impl TCFType for CFURL

source§

impl TCFType for CFUUID

source§

impl TCFType for CFAllocator

source§

impl TCFType for CFType

source§

impl<K, V> TCFType for CFDictionary<K, V>

source§

impl<K, V> TCFType for CFMutableDictionary<K, V>

source§

impl<T> TCFType for CFArray<T>

source§

impl<T> TCFType for CFSet<T>