@@ -26,6 +26,7 @@ mod any;
2626mod chain;
2727mod cmp;
2828mod enumerate;
29+ mod eq;
2930mod filter;
3031mod filter_map;
3132mod find;
@@ -60,6 +61,7 @@ use all::AllFuture;
6061use any:: AnyFuture ;
6162use cmp:: CmpFuture ;
6263use enumerate:: Enumerate ;
64+ use eq:: EqFuture ;
6365use filter_map:: FilterMap ;
6466use find:: FindFuture ;
6567use find_map:: FindMapFuture ;
@@ -1622,6 +1624,42 @@ extension_trait! {
16221624 GeFuture :: new( self , other)
16231625 }
16241626
1627+ #[ doc = r#"
1628+ Determines if the elements of this `Stream` are lexicographically
1629+ equal to those of another.
1630+
1631+ # Examples
1632+
1633+ ```
1634+ # fn main() { async_std::task::block_on(async {
1635+ #
1636+ use async_std::prelude::*;
1637+ use std::collections::VecDeque;
1638+
1639+ let single: VecDeque<isize> = vec![1].into_iter().collect();
1640+ let single_eq: VecDeque<isize> = vec![10].into_iter().collect();
1641+ let multi: VecDeque<isize> = vec![1,2].into_iter().collect();
1642+ let multi_eq: VecDeque<isize> = vec![1,5].into_iter().collect();
1643+ assert_eq!(single.clone().eq(single.clone()).await, true);
1644+ assert_eq!(single_eq.clone().eq(single.clone()).await, false);
1645+ assert_eq!(multi.clone().eq(single_eq.clone()).await, false);
1646+ assert_eq!(multi_eq.clone().eq(multi.clone()).await, false);
1647+ #
1648+ # }) }
1649+ ```
1650+ "# ]
1651+ fn eq<S >(
1652+ self ,
1653+ other: S
1654+ ) -> impl Future <Output = bool > [ EqFuture <Self , S >]
1655+ where
1656+ Self : Sized + Stream ,
1657+ S : Sized + Stream ,
1658+ <Self as Stream >:: Item : PartialEq <S :: Item >,
1659+ {
1660+ EqFuture :: new( self , other)
1661+ }
1662+
16251663 #[ doc = r#"
16261664 Determines if the elements of this `Stream` are lexicographically
16271665 greater than those of another.
0 commit comments