Skip to content

Commit 9f9a78e

Browse files
committed
Rename Empty and associated funcs to Never
Never (the name for the nightly "!" type) more clearly expresses the behavior of this Future. Rather than returning nothing, Never (formerly Empty) never completes.
1 parent 65e65e3 commit 9f9a78e

File tree

6 files changed

+37
-37
lines changed

6 files changed

+37
-37
lines changed

src/impls.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::mem;
22

3-
use {Future, empty, Poll, Task};
3+
use {Future, never, Poll, Task};
44

55
impl<T, E> Future for Box<Future<Item=T, Error=E>>
66
where T: 'static,
@@ -22,7 +22,7 @@ impl<T, E> Future for Box<Future<Item=T, Error=E>>
2222
if let Some(f) = (**self).tailcall() {
2323
return Some(f)
2424
}
25-
Some(mem::replace(self, Box::new(empty())))
25+
Some(mem::replace(self, Box::new(never())))
2626
}
2727
}
2828

@@ -46,7 +46,7 @@ impl<T, E> Future for Box<Future<Item=T, Error=E> + Send>
4646
if let Some(f) = (**self).tailcall() {
4747
return Some(f)
4848
}
49-
let me = mem::replace(self, Box::new(empty()));
49+
let me = mem::replace(self, Box::new(never()));
5050
let me: Box<Future<Item=T, Error=E>> = me;
5151
Some(me)
5252
}

src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,15 @@ pub mod executor;
171171
// Primitive futures
172172
mod collect;
173173
mod done;
174-
mod empty;
174+
mod never;
175175
mod failed;
176176
mod finished;
177177
mod lazy;
178178
mod oneshot;
179179
mod store;
180180
pub use collect::{collect, Collect};
181181
pub use done::{done, Done};
182-
pub use empty::{empty, Empty};
182+
pub use never::{never, Never};
183183
pub use failed::{failed, Failed};
184184
pub use finished::{finished, Finished};
185185
pub use lazy::{lazy, Lazy};

src/empty.rs renamed to src/never.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {Future, Task, Poll};
55
/// A future which is never resolved.
66
///
77
/// This future can be created with the `empty` function.
8-
pub struct Empty<T, E>
8+
pub struct Never<T, E>
99
where T: 'static,
1010
E: 'static,
1111
{
@@ -18,11 +18,11 @@ pub struct Empty<T, E>
1818
/// The returned future will never resolve with a success but is still
1919
/// susceptible to cancellation. That is, if a callback is scheduled on the
2020
/// returned future, it is only run once the future is dropped (canceled).
21-
pub fn empty<T: 'static, E: 'static>() -> Empty<T, E> {
22-
Empty { _data: marker::PhantomData }
21+
pub fn never<T: 'static, E: 'static>() -> Never<T, E> {
22+
Never { _data: marker::PhantomData }
2323
}
2424

25-
impl<T, E> Future for Empty<T, E>
25+
impl<T, E> Future for Never<T, E>
2626
where T: 'static,
2727
E: 'static,
2828
{

src/select.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::mem;
22

3-
use {Future, Task, empty, Poll};
3+
use {Future, Task, never, Poll};
44
use util::Collapsed;
55

66
/// Future for the `select` combinator, waiting for one of two futures to
@@ -113,7 +113,7 @@ impl<A, B> Future for SelectNext<A, B>
113113
match self.inner {
114114
OneOf::A(Collapsed::Tail(ref mut a)) |
115115
OneOf::B(Collapsed::Tail(ref mut a)) => {
116-
Some(mem::replace(a, Box::new(empty())))
116+
Some(mem::replace(a, Box::new(never())))
117117
}
118118
_ => None,
119119
}

src/select_all.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::mem;
22

3-
use {Future, IntoFuture, Task, empty, Poll};
3+
use {Future, IntoFuture, Task, never, Poll};
44
use util::Collapsed;
55

66
/// Future for the `select_all` combinator, waiting for one of any of a list of
@@ -105,7 +105,7 @@ impl<A> Future for SelectAllNext<A>
105105
self.inner.collapse();
106106
match self.inner {
107107
Collapsed::Tail(ref mut a) => {
108-
Some(mem::replace(a, Box::new(empty())))
108+
Some(mem::replace(a, Box::new(never())))
109109
}
110110
_ => None,
111111
}

tests/all.rs

+24-24
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ fn result_smoke() {
5050
assert_done(|| f_ok(1).select(f_err(2)).then(unselect), ok(1));
5151
assert_done(|| f_ok(1).select(Ok(2)).then(unselect), ok(1));
5252
assert_done(|| f_err(1).select(f_ok(1)).then(unselect), err(1));
53-
assert_done(|| f_ok(1).select(empty()).then(unselect), Ok(1));
54-
assert_done(|| empty().select(f_ok(1)).then(unselect), Ok(1));
53+
assert_done(|| f_ok(1).select(never()).then(unselect), Ok(1));
54+
assert_done(|| never().select(f_ok(1)).then(unselect), Ok(1));
5555
assert_done(|| f_ok(1).join(f_err(1)), Err(1));
5656
assert_done(|| f_ok(1).join(Ok(2)), Ok((1, 2)));
5757
assert_done(|| f_err(1).join(f_ok(1)), Err(1));
@@ -62,21 +62,21 @@ fn result_smoke() {
6262
}
6363

6464
#[test]
65-
fn test_empty() {
66-
fn empty() -> Empty<i32, u32> { futures::empty() }
67-
68-
assert_empty(|| empty());
69-
assert_empty(|| empty().select(empty()));
70-
assert_empty(|| empty().join(empty()));
71-
assert_empty(|| empty().join(f_ok(1)));
72-
assert_empty(|| f_ok(1).join(empty()));
73-
assert_empty(|| empty().or_else(move |_| empty()));
74-
assert_empty(|| empty().and_then(move |_| empty()));
75-
assert_empty(|| f_err(1).or_else(move |_| empty()));
76-
assert_empty(|| f_ok(1).and_then(move |_| empty()));
77-
assert_empty(|| empty().map(|a| a + 1));
78-
assert_empty(|| empty().map_err(|a| a + 1));
79-
assert_empty(|| empty().then(|a| a));
65+
fn test_never() {
66+
fn never() -> Never<i32, u32> { futures::never() }
67+
68+
assert_empty(|| never());
69+
assert_empty(|| never().select(never()));
70+
assert_empty(|| never().join(never()));
71+
assert_empty(|| never().join(f_ok(1)));
72+
assert_empty(|| f_ok(1).join(never()));
73+
assert_empty(|| never().or_else(move |_| never()));
74+
assert_empty(|| never().and_then(move |_| never()));
75+
assert_empty(|| f_err(1).or_else(move |_| never()));
76+
assert_empty(|| f_ok(1).and_then(move |_| never()));
77+
assert_empty(|| never().map(|a| a + 1));
78+
assert_empty(|| never().map_err(|a| a + 1));
79+
assert_empty(|| never().then(|a| a));
8080
}
8181

8282
#[test]
@@ -99,8 +99,8 @@ fn flatten() {
9999
assert_done(|| failed(1u32).map(finished).flatten(), err(1));
100100
assert_done(|| futures::finished::<_, u8>(futures::finished::<_, u32>(1))
101101
.flatten(), ok(1));
102-
assert_empty(|| finished(empty::<i32, u32>()).flatten());
103-
assert_empty(|| empty::<i32, u32>().map(finished).flatten());
102+
assert_empty(|| finished(never::<i32, u32>()).flatten());
103+
assert_empty(|| never::<i32, u32>().map(finished).flatten());
104104
}
105105

106106
#[test]
@@ -256,10 +256,10 @@ fn select2() {
256256
}
257257
}
258258

259-
assert_done(|| f_ok(2).select(empty()).then(d), Ok(2));
260-
assert_done(|| empty().select(f_ok(2)).then(d), Ok(2));
261-
assert_done(|| f_err(2).select(empty()).then(d), Err(2));
262-
assert_done(|| empty().select(f_err(2)).then(d), Err(2));
259+
assert_done(|| f_ok(2).select(never()).then(d), Ok(2));
260+
assert_done(|| never().select(f_ok(2)).then(d), Ok(2));
261+
assert_done(|| f_err(2).select(never()).then(d), Err(2));
262+
assert_done(|| never().select(f_err(2)).then(d), Err(2));
263263

264264
assert_done(|| {
265265
f_ok(1).select(f_ok(2))
@@ -342,7 +342,7 @@ fn select2() {
342342
// Cancel on early drop
343343
{
344344
let (tx, rx) = channel();
345-
let f = f_ok(1).select(empty().map(move |()| {
345+
let f = f_ok(1).select(never().map(move |()| {
346346
tx.send(()).unwrap();
347347
1
348348
}));

0 commit comments

Comments
 (0)