@@ -81,6 +81,34 @@ impl<T, E> Poll<Result<T, E>> {
81
81
}
82
82
}
83
83
84
+ impl < T , E > Poll < Option < Result < T , E > > > {
85
+ /// Changes the success value of this `Poll` with the closure provided.
86
+ #[ unstable( feature = "poll_map" , issue = "63514" ) ]
87
+ pub fn map_ok < U , F > ( self , f : F ) -> Poll < Option < Result < U , E > > >
88
+ where F : FnOnce ( T ) -> U
89
+ {
90
+ match self {
91
+ Poll :: Ready ( Some ( Ok ( t) ) ) => Poll :: Ready ( Some ( Ok ( f ( t) ) ) ) ,
92
+ Poll :: Ready ( Some ( Err ( e) ) ) => Poll :: Ready ( Some ( Err ( e) ) ) ,
93
+ Poll :: Ready ( None ) => Poll :: Ready ( None ) ,
94
+ Poll :: Pending => Poll :: Pending ,
95
+ }
96
+ }
97
+
98
+ /// Changes the error value of this `Poll` with the closure provided.
99
+ #[ unstable( feature = "poll_map" , issue = "63514" ) ]
100
+ pub fn map_err < U , F > ( self , f : F ) -> Poll < Option < Result < T , U > > >
101
+ where F : FnOnce ( E ) -> U
102
+ {
103
+ match self {
104
+ Poll :: Ready ( Some ( Ok ( t) ) ) => Poll :: Ready ( Some ( Ok ( t) ) ) ,
105
+ Poll :: Ready ( Some ( Err ( e) ) ) => Poll :: Ready ( Some ( Err ( f ( e) ) ) ) ,
106
+ Poll :: Ready ( None ) => Poll :: Ready ( None ) ,
107
+ Poll :: Pending => Poll :: Pending ,
108
+ }
109
+ }
110
+ }
111
+
84
112
#[ stable( feature = "futures_api" , since = "1.36.0" ) ]
85
113
impl < T > From < T > for Poll < T > {
86
114
fn from ( t : T ) -> Poll < T > {
0 commit comments