Files
core-foundation-rs/boolean.rs
T

62 lines
1.3 KiB
Rust

use base::{AbstractCFType, AbstractCFTypeRef, CFRelease, CFRetain, CFTypeRef};
use cast::reinterpret_cast;
struct __CFBoolean { private: () }
pub type CFBooleanRef = *__CFBoolean;
impl CFBooleanRef : AbstractCFTypeRef {
pure fn as_type_ref(&self) -> CFTypeRef { *self as CFTypeRef }
}
pub struct CFBoolean {
obj: CFBooleanRef,
drop {
unsafe {
CFRelease(reinterpret_cast(&self.obj));
}
}
}
pub impl CFBoolean {
static fn wrap(obj: CFBooleanRef) -> CFBoolean {
CFBoolean { obj: obj }
}
static fn true_value() -> CFBoolean {
unsafe {
let obj = kCFBooleanTrue;
CFRetain(reinterpret_cast(&obj));
return CFBoolean::wrap(obj);
}
}
static fn false_value() -> CFBoolean {
unsafe {
let obj = kCFBooleanFalse;
CFRetain(reinterpret_cast(&obj));
return CFBoolean::wrap(obj);
}
}
}
impl CFBoolean : AbstractCFType<CFBooleanRef> {
pure fn get_ref() -> CFBooleanRef { self.obj }
static fn wrap(obj: CFBooleanRef) -> CFBoolean {
CFBoolean { obj: obj }
}
static fn unwrap(wrapper: CFBoolean) -> CFBooleanRef {
wrapper.obj
}
}
#[link_args="-framework CoreFoundation"]
#[nolink]
extern {
const kCFBooleanTrue: CFBooleanRef;
const kCFBooleanFalse: CFBooleanRef;
}