@@ -462,25 +462,85 @@ impl Extend<uint> for TrieSet {
462
462
}
463
463
}
464
464
465
+ #[ unstable = "matches collection reform specification, waiting for dust to settle" ]
465
466
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
+ /// ```
466
481
fn bitor ( & self , rhs : & TrieSet ) -> TrieSet {
467
482
self . union ( rhs) . collect ( )
468
483
}
469
484
}
470
485
486
+ #[ unstable = "matches collection reform specification, waiting for dust to settle" ]
471
487
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
+ /// ```
472
502
fn bitand ( & self , rhs : & TrieSet ) -> TrieSet {
473
503
self . intersection ( rhs) . collect ( )
474
504
}
475
505
}
476
506
507
+ #[ unstable = "matches collection reform specification, waiting for dust to settle" ]
477
508
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
+ /// ```
478
523
fn bitxor ( & self , rhs : & TrieSet ) -> TrieSet {
479
524
self . symmetric_difference ( rhs) . collect ( )
480
525
}
481
526
}
482
527
528
+ #[ unstable = "matches collection reform specification, waiting for dust to settle" ]
483
529
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
+ /// ```
484
544
fn sub ( & self , rhs : & TrieSet ) -> TrieSet {
485
545
self . difference ( rhs) . collect ( )
486
546
}
0 commit comments