Function init

Source
pub fn init(stdin: PollFd, stdout: PollFd) -> (Lines, Writer)
Examples found in repository?
examples/readline.rs (line 24)
13fn main() {
14    // Create the event loop that will drive this server
15    let mut l = Core::new().unwrap();
16    let handle = l.handle();
17
18    let periodic_timer1 = tokio_core::reactor::Interval::new(std::time::Duration::from_millis(2500), &handle).unwrap();
19    let periodic_timer2 = tokio_core::reactor::Interval::new(std::time::Duration::from_millis(500), &handle).unwrap();
20    let stdio = async_readline::RawStdio::new(&handle).unwrap();
21    let (stdin, stdout, _) = stdio.split();
22
23
24    let (commands, rl_writer) = async_readline::init(stdin, stdout);
25
26    let acc1 = Rc::new(RefCell::new(0));
27    let acc2 = acc1.clone();
28    let acc3 = acc1.clone();
29    let connected1 = Rc::new(RefCell::new(false));
30    let connected2 = connected1.clone();
31    let connected3 = connected1.clone();
32
33    let done = commands
34        .map(move |line| {
35            *connected1.borrow_mut() = false;
36            *acc1.borrow_mut() = 0;
37
38            let mut v = vec!();
39            let _ = write!(v, "\n> ");
40            v.append(&mut line.line.clone());
41            v
42        })
43        .select(
44            periodic_timer1
45            .map(|_| {
46                let mut v = vec!();
47                if *connected2.borrow() {
48                    *acc2.borrow_mut() += 1;
49                    let _ = write!(v, "\nFiles ready: {} ", *acc2.borrow());
50                }
51                v
52            })
53            )
54        .select(
55            periodic_timer2.map(|_| {
56                let mut v = vec!();
57                if !*connected3.borrow() {
58                    *acc3.borrow_mut() += 1;
59                    if *acc3.borrow() > 3 {
60                        let _ = write!(v, "\nConnected!");
61                        *acc3.borrow_mut() = 0;
62                        *connected3.borrow_mut() = true;
63                    } else {
64                        let _ = write!(v, "\nConnecting... ");
65                    }
66                } else if *acc3.borrow() > 10 {
67                    let _ = write!(v, "Disconnecting... ");
68                    *acc3.borrow_mut() = 0;
69                    *connected3.borrow_mut() = false;
70                } else if *acc3.borrow() > 5 {
71                    let _ = write!(v, "Error... ");
72                }
73
74                v
75            })
76            )
77            .forward(rl_writer);
78
79    l.run(done).unwrap();
80}