[][src]Trait core_services::TCFType

pub trait TCFType {
    type Ref: TCFTypeRef;
    fn as_concrete_TypeRef(&self) -> Self::Ref;
unsafe fn wrap_under_create_rule(obj: Self::Ref) -> Self;
fn type_id() -> usize;
fn as_CFTypeRef(&self) -> *const c_void;
unsafe fn wrap_under_get_rule(reference: Self::Ref) -> Self; fn as_CFType(&self) -> CFType { ... }
fn into_CFType(self) -> CFType { ... }
fn retain_count(&self) -> isize { ... }
fn type_of(&self) -> usize { ... }
fn show(&self) { ... }
fn instance_of<OtherCFType>(&self) -> bool
    where
        OtherCFType: TCFType
, { ... } }

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.

Associated Types

type Ref: TCFTypeRef

The reference type wrapped inside this type.

Loading content...

Required methods

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

Returns the object as its concrete TypeRef.

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.

fn type_id() -> usize

Returns the type ID for this class.

fn as_CFTypeRef(&self) -> *const c_void

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

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.

Loading content...

Provided methods

fn as_CFType(&self) -> CFType

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

fn into_CFType(self) -> CFType

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

fn retain_count(&self) -> isize

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.

fn type_of(&self) -> usize

Returns the type ID of this object.

fn show(&self)

Writes a debugging version of this object on standard error.

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

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

Loading content...

Implementations on Foreign Types

impl<K, V> TCFType for CFMutableDictionary<K, V>[src]

type Ref = *mut __CFDictionary

impl TCFType for CFBundle[src]

type Ref = *mut __CFBundle

impl TCFType for CFDate[src]

type Ref = *const __CFDate

impl TCFType for CFAllocator[src]

impl TCFType for CFRunLoopTimer[src]

type Ref = *mut __CFRunLoopTimer

impl TCFType for CFMutableAttributedString[src]

type Ref = *const __CFAttributedString

impl TCFType for CFCharacterSet[src]

type Ref = *const __CFCharacterSet

impl TCFType for CFFileDescriptor[src]

type Ref = *mut __CFFileDescriptor

impl TCFType for CFError[src]

type Ref = *mut __CFError

impl TCFType for CFType[src]

impl<T> TCFType for CFSet<T>[src]

type Ref = *const __CFSet

impl<K, V> TCFType for CFDictionary<K, V>[src]

type Ref = *const __CFDictionary

impl TCFType for CFURL[src]

type Ref = *const __CFURL

impl TCFType for CFRunLoop[src]

type Ref = *mut __CFRunLoop

impl TCFType for CFBoolean[src]

type Ref = *const __CFBoolean

impl TCFType for CFRunLoopObserver[src]

type Ref = *mut __CFRunLoopObserver

impl TCFType for CFAttributedString[src]

type Ref = *const __CFAttributedString

impl TCFType for CFNumber[src]

type Ref = *const __CFNumber

impl TCFType for CFRunLoopSource[src]

type Ref = *mut __CFRunLoopSource

impl TCFType for CFUUID[src]

type Ref = *const __CFUUID

impl TCFType for CFTimeZone[src]

type Ref = *const __CFTimeZone

impl TCFType for CFData[src]

type Ref = *const __CFData

Loading content...

Implementors

impl TCFType for CFString[src]

type Ref = *const __CFString

impl<T> TCFType for CFArray<T>[src]

type Ref = *const __CFArray

Loading content...