Skip to content

Commit 33f34bd

Browse files
committed
Merge remote-tracking branch 'csouth3/trieset-bitops' into rollup-2014_12_03
Conflicts: src/libcollections/trie/set.rs
2 parents 0901107 + 309ab34 commit 33f34bd

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/libcollections/trie/set.rs

+60
Original file line numberDiff line numberDiff line change
@@ -462,25 +462,85 @@ impl Extend<uint> for TrieSet {
462462
}
463463
}
464464

465+
#[unstable = "matches collection reform specification, waiting for dust to settle"]
465466
impl BitOr<TrieSet, TrieSet> for TrieSet {
467+
/// Returns the union of `self` and `rhs` as a new `TrieSet`.
468+
///
469+
/// # Example
470+
///
471+
/// ```
472+
/// use std::collections::TrieSet;
473+
///
474+
/// let a: TrieSet = vec![1, 2, 3].into_iter().collect();
475+
/// let b: TrieSet = vec![3, 4, 5].into_iter().collect();
476+
///
477+
/// let set: TrieSet = a | b;
478+
/// let v: Vec<uint> = set.iter().collect();
479+
/// assert_eq!(v, vec![1u, 2, 3, 4, 5]);
480+
/// ```
466481
fn bitor(&self, rhs: &TrieSet) -> TrieSet {
467482
self.union(rhs).collect()
468483
}
469484
}
470485

486+
#[unstable = "matches collection reform specification, waiting for dust to settle"]
471487
impl BitAnd<TrieSet, TrieSet> for TrieSet {
488+
/// Returns the intersection of `self` and `rhs` as a new `TrieSet`.
489+
///
490+
/// # Example
491+
///
492+
/// ```
493+
/// use std::collections::TrieSet;
494+
///
495+
/// let a: TrieSet = vec![1, 2, 3].into_iter().collect();
496+
/// let b: TrieSet = vec![2, 3, 4].into_iter().collect();
497+
///
498+
/// let set: TrieSet = a & b;
499+
/// let v: Vec<uint> = set.iter().collect();
500+
/// assert_eq!(v, vec![2u, 3]);
501+
/// ```
472502
fn bitand(&self, rhs: &TrieSet) -> TrieSet {
473503
self.intersection(rhs).collect()
474504
}
475505
}
476506

507+
#[unstable = "matches collection reform specification, waiting for dust to settle"]
477508
impl BitXor<TrieSet, TrieSet> for TrieSet {
509+
/// Returns the symmetric difference of `self` and `rhs` as a new `TrieSet`.
510+
///
511+
/// # Example
512+
///
513+
/// ```
514+
/// use std::collections::TrieSet;
515+
///
516+
/// let a: TrieSet = vec![1, 2, 3].into_iter().collect();
517+
/// let b: TrieSet = vec![3, 4, 5].into_iter().collect();
518+
///
519+
/// let set: TrieSet = a ^ b;
520+
/// let v: Vec<uint> = set.iter().collect();
521+
/// assert_eq!(v, vec![1u, 2, 4, 5]);
522+
/// ```
478523
fn bitxor(&self, rhs: &TrieSet) -> TrieSet {
479524
self.symmetric_difference(rhs).collect()
480525
}
481526
}
482527

528+
#[unstable = "matches collection reform specification, waiting for dust to settle"]
483529
impl Sub<TrieSet, TrieSet> for TrieSet {
530+
/// Returns the difference of `self` and `rhs` as a new `TrieSet`.
531+
///
532+
/// # Example
533+
///
534+
/// ```
535+
/// use std::collections::TrieSet;
536+
///
537+
/// let a: TrieSet = vec![1, 2, 3].into_iter().collect();
538+
/// let b: TrieSet = vec![3, 4, 5].into_iter().collect();
539+
///
540+
/// let set: TrieSet = a - b;
541+
/// let v: Vec<uint> = set.iter().collect();
542+
/// assert_eq!(v, vec![1u, 2]);
543+
/// ```
484544
fn sub(&self, rhs: &TrieSet) -> TrieSet {
485545
self.difference(rhs).collect()
486546
}

0 commit comments

Comments
 (0)