diff options
| author | Corey Richardson <corey@octayn.net> | 2014-12-05 11:19:50 -0800 |
|---|---|---|
| committer | Corey Richardson <corey@octayn.net> | 2014-12-05 11:19:50 -0800 |
| commit | 33f34bdb4e67e670b6b6979c690c510eab00c135 (patch) | |
| tree | 2434196ae0426a6ef84dbdc2e664f974667b7a3d | |
| parent | 090110779fef952af868109ff39fa08974165bf0 (diff) | |
| parent | 309ab34b7ad80c43f619d4ed7faa8e3905eae530 (diff) | |
| download | rust-33f34bdb4e67e670b6b6979c690c510eab00c135.tar.gz rust-33f34bdb4e67e670b6b6979c690c510eab00c135.zip | |
Merge remote-tracking branch 'csouth3/trieset-bitops' into rollup-2014_12_03
Conflicts: src/libcollections/trie/set.rs
| -rw-r--r-- | src/libcollections/trie/set.rs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/libcollections/trie/set.rs b/src/libcollections/trie/set.rs index 9ddb8dd8798..1b3657943da 100644 --- a/src/libcollections/trie/set.rs +++ b/src/libcollections/trie/set.rs @@ -462,25 +462,85 @@ impl Extend<uint> for TrieSet { } } +#[unstable = "matches collection reform specification, waiting for dust to settle"] impl BitOr<TrieSet, TrieSet> for TrieSet { + /// Returns the union of `self` and `rhs` as a new `TrieSet`. + /// + /// # Example + /// + /// ``` + /// use std::collections::TrieSet; + /// + /// let a: TrieSet = vec![1, 2, 3].into_iter().collect(); + /// let b: TrieSet = vec![3, 4, 5].into_iter().collect(); + /// + /// let set: TrieSet = a | b; + /// let v: Vec<uint> = set.iter().collect(); + /// assert_eq!(v, vec![1u, 2, 3, 4, 5]); + /// ``` fn bitor(&self, rhs: &TrieSet) -> TrieSet { self.union(rhs).collect() } } +#[unstable = "matches collection reform specification, waiting for dust to settle"] impl BitAnd<TrieSet, TrieSet> for TrieSet { + /// Returns the intersection of `self` and `rhs` as a new `TrieSet`. + /// + /// # Example + /// + /// ``` + /// use std::collections::TrieSet; + /// + /// let a: TrieSet = vec![1, 2, 3].into_iter().collect(); + /// let b: TrieSet = vec![2, 3, 4].into_iter().collect(); + /// + /// let set: TrieSet = a & b; + /// let v: Vec<uint> = set.iter().collect(); + /// assert_eq!(v, vec![2u, 3]); + /// ``` fn bitand(&self, rhs: &TrieSet) -> TrieSet { self.intersection(rhs).collect() } } +#[unstable = "matches collection reform specification, waiting for dust to settle"] impl BitXor<TrieSet, TrieSet> for TrieSet { + /// Returns the symmetric difference of `self` and `rhs` as a new `TrieSet`. + /// + /// # Example + /// + /// ``` + /// use std::collections::TrieSet; + /// + /// let a: TrieSet = vec![1, 2, 3].into_iter().collect(); + /// let b: TrieSet = vec![3, 4, 5].into_iter().collect(); + /// + /// let set: TrieSet = a ^ b; + /// let v: Vec<uint> = set.iter().collect(); + /// assert_eq!(v, vec![1u, 2, 4, 5]); + /// ``` fn bitxor(&self, rhs: &TrieSet) -> TrieSet { self.symmetric_difference(rhs).collect() } } +#[unstable = "matches collection reform specification, waiting for dust to settle"] impl Sub<TrieSet, TrieSet> for TrieSet { + /// Returns the difference of `self` and `rhs` as a new `TrieSet`. + /// + /// # Example + /// + /// ``` + /// use std::collections::TrieSet; + /// + /// let a: TrieSet = vec![1, 2, 3].into_iter().collect(); + /// let b: TrieSet = vec![3, 4, 5].into_iter().collect(); + /// + /// let set: TrieSet = a - b; + /// let v: Vec<uint> = set.iter().collect(); + /// assert_eq!(v, vec![1u, 2]); + /// ``` fn sub(&self, rhs: &TrieSet) -> TrieSet { self.difference(rhs).collect() } |
