@@ -32,6 +32,7 @@ mod find_map;
3232mod fold;
3333mod for_each;
3434mod fuse;
35+ mod ge;
3536mod inspect;
3637mod map;
3738mod min_by;
@@ -55,6 +56,7 @@ use find::FindFuture;
5556use find_map:: FindMapFuture ;
5657use fold:: FoldFuture ;
5758use for_each:: ForEachFuture ;
59+ use ge:: GeFuture ;
5860use min_by:: MinByFuture ;
5961use next:: NextFuture ;
6062use nth:: NthFuture ;
@@ -1257,6 +1259,45 @@ extension_trait! {
12571259 {
12581260 PartialCmpFuture :: new( self , other)
12591261 }
1262+
1263+ #[ doc = r#"
1264+ Determines if the elements of this `Stream` are lexicographically
1265+ greater than or equal to those of another.
1266+
1267+ # Examples
1268+ ```
1269+ # fn main() { async_std::task::block_on(async {
1270+ #
1271+ use async_std::prelude::*;
1272+ use std::collections::VecDeque;
1273+
1274+ let single: VecDeque<isize> = vec![1].into_iter().collect();
1275+ let single_gt: VecDeque<isize> = vec![10].into_iter().collect();
1276+ let multi: VecDeque<isize> = vec![1,2].into_iter().collect();
1277+ let multi_gt: VecDeque<isize> = vec![1,5].into_iter().collect();
1278+
1279+ assert_eq!(single.clone().ge(single.clone()).await, true);
1280+ assert_eq!(single_gt.clone().ge(single.clone()).await, true);
1281+
1282+ assert_eq!(multi.clone().ge(single_gt.clone()).await, false);
1283+ assert_eq!(multi_gt.clone().ge(multi.clone()).await, true);
1284+
1285+
1286+ #
1287+ # }) }
1288+ ```
1289+ "# ]
1290+ fn ge<S >(
1291+ self ,
1292+ other: S
1293+ ) -> impl Future <Output = bool > + ' _ [ GeFuture <Self , S >]
1294+ where
1295+ Self : Sized + Stream ,
1296+ S : Stream ,
1297+ Self :: Item : PartialOrd <S :: Item >,
1298+ {
1299+ GeFuture :: new( self , other)
1300+ }
12601301 }
12611302
12621303 impl <S : Stream + Unpin + ?Sized > Stream for Box <S > {
0 commit comments