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() -> usize;
fn as_CFTypeRef(&self) -> *const c_void;
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) -> isize { ... }
fn type_of(&self) -> usize { ... }
fn show(&self) { ... }
fn instance_of<OtherCFType>(&self) -> bool
where OtherCFType: TCFType { ... }
}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§
Sourcetype Ref: TCFTypeRef
type Ref: TCFTypeRef
The reference type wrapped inside this type.
Required Methods§
Sourcefn as_concrete_TypeRef(&self) -> Self::Ref
fn as_concrete_TypeRef(&self) -> Self::Ref
Returns the object as its concrete TypeRef.
Sourceunsafe fn wrap_under_create_rule(obj: Self::Ref) -> Self
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.
Sourcefn as_CFTypeRef(&self) -> *const c_void
fn as_CFTypeRef(&self) -> *const c_void
Returns the object as a raw CFTypeRef. The reference count is not adjusted.
Sourceunsafe fn wrap_under_get_rule(reference: Self::Ref) -> Self
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§
Sourcefn as_CFType(&self) -> CFType
fn as_CFType(&self) -> CFType
Returns the object as a wrapped CFType. The reference count is incremented by one.
Sourcefn into_CFType(self) -> CFTypewhere
Self: Sized,
fn into_CFType(self) -> CFTypewhere
Self: Sized,
Returns the object as a wrapped CFType. Consumes self and avoids changing the reference
count.
Sourcefn retain_count(&self) -> isize
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.
Sourcefn instance_of<OtherCFType>(&self) -> boolwhere
OtherCFType: TCFType,
fn instance_of<OtherCFType>(&self) -> boolwhere
OtherCFType: TCFType,
Returns true if this value is an instance of another type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.