We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent ddd8c15 commit eb74f0cCopy full SHA for eb74f0c
src/libextra/future.rs
@@ -60,6 +60,19 @@ impl<A:Clone> Future<A> {
60
}
61
62
63
+impl<A> Future<A> {
64
+ /// Gets the value from this future, forcing evaluation.
65
+ pub fn unwrap(self) -> A {
66
+ let mut this = self;
67
+ this.get_ref();
68
+ let state = replace(&mut this.state, Evaluating);
69
+ match state {
70
+ Forced(v) => v,
71
+ _ => fail!( "Logic error." ),
72
+ }
73
74
+}
75
+
76
impl<A> Future<A> {
77
pub fn get_ref<'a>(&'a mut self) -> &'a A {
78
/*!
@@ -179,6 +192,12 @@ mod test {
179
192
assert_eq!(f.get(), ~"fail");
180
193
181
194
195
+ #[test]
196
+ fn test_interface_unwrap() {
197
+ let mut f = from_value(~"fail");
198
+ assert_eq!(f.unwrap(), ~"fail");
199
200
182
201
#[test]
183
202
fn test_get_ref_method() {
184
203
let mut f = from_value(22);
0 commit comments