into/
into.rs

1extern crate poolite;
2use poolite::Pool;
3use std::io;
4
5/// `cargo run --example into`
6fn main() {
7    into_inner();
8    println!(); // newline
9    println!("{:?}", into_error());
10}
11fn into_inner() {
12    let pool = match Pool::new() {
13        Ok(p) => p,
14        Err(e) => e.into_inner(),
15    };
16    for i in 0..38 {
17        pool.push(move || test(i));
18    }
19
20    pool.join(); //wait for the pool
21}
22
23fn into_error() -> io::Result<()> {
24    let pool = Pool::new().map_err(|e| e.into_error())?;
25    for i in 0..38 {
26        pool.push(move || test(i));
27    }
28
29    pool.join(); //wait for the pool
30
31    Ok(())
32}
33
34fn test(msg: i32) {
35    println!("key: {}\tvalue: {}", msg, fib(msg));
36}
37
38fn fib(msg: i32) -> i32 {
39    match msg {
40        0...2 => 1,
41        x => fib(x - 1) + fib(x - 2),
42    }
43}