summaryrefslogtreecommitdiffstats
path: root/third_party/rust/core-foundation/src/set.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/core-foundation/src/set.rs')
-rw-r--r--third_party/rust/core-foundation/src/set.rs32
1 files changed, 20 insertions, 12 deletions
diff --git a/third_party/rust/core-foundation/src/set.rs b/third_party/rust/core-foundation/src/set.rs
index eb1d357a03..641202de8d 100644
--- a/third_party/rust/core-foundation/src/set.rs
+++ b/third_party/rust/core-foundation/src/set.rs
@@ -9,13 +9,13 @@
//! An immutable bag of elements.
+use core_foundation_sys::base::{kCFAllocatorDefault, CFRelease, CFTypeRef};
pub use core_foundation_sys::set::*;
-use core_foundation_sys::base::{CFTypeRef, CFRelease, kCFAllocatorDefault};
-use base::{CFIndexConvertible, TCFType};
+use crate::base::{CFIndexConvertible, TCFType};
-use std::os::raw::c_void;
use std::marker::PhantomData;
+use std::os::raw::c_void;
/// An immutable bag of elements.
pub struct CFSet<T = *const c_void>(CFSetRef, PhantomData<T>);
@@ -31,23 +31,31 @@ impl_CFTypeDescription!(CFSet);
impl CFSet {
/// Creates a new set from a list of `CFType` instances.
- pub fn from_slice<T>(elems: &[T]) -> CFSet<T> where T: TCFType {
+ pub fn from_slice<T>(elems: &[T]) -> CFSet<T>
+ where
+ T: TCFType,
+ {
unsafe {
let elems: Vec<CFTypeRef> = elems.iter().map(|elem| elem.as_CFTypeRef()).collect();
- let set_ref = CFSetCreate(kCFAllocatorDefault,
- elems.as_ptr(),
- elems.len().to_CFIndex(),
- &kCFTypeSetCallBacks);
+ let set_ref = CFSetCreate(
+ kCFAllocatorDefault,
+ elems.as_ptr(),
+ elems.len().to_CFIndex(),
+ &kCFTypeSetCallBacks,
+ );
TCFType::wrap_under_create_rule(set_ref)
}
}
}
impl<T> CFSet<T> {
- /// Get the number of elements in the CFSet
+ /// Get the number of elements in the `CFSet`.
pub fn len(&self) -> usize {
- unsafe {
- CFSetGetCount(self.0) as usize
- }
+ unsafe { CFSetGetCount(self.0) as usize }
+ }
+
+ /// Returns `true` if the set contains no elements.
+ pub fn is_empty(&self) -> bool {
+ self.len() == 0
}
}