diff --git a/core-foundation/src/number.rs b/core-foundation/src/number.rs index 96ec312..ce8e8f0 100644 --- a/core-foundation/src/number.rs +++ b/core-foundation/src/number.rs @@ -25,6 +25,16 @@ impl_CFTypeDescription!(CFNumber); impl_CFComparison!(CFNumber, CFNumberCompare); impl CFNumber { + + #[inline] + pub fn to_i32(&self) -> Option { + unsafe { + let mut value: i32 = 0; + let ok = CFNumberGetValue(self.0, kCFNumberSInt32Type, mem::transmute(&mut value)); + if ok { Some(value) } else { None } + } + } + #[inline] pub fn to_i64(&self) -> Option { unsafe {