exit

Function exit 

Source
pub fn exit<T, N>() -> ControlResult<T, N>
Expand description

Get an exit ControlResult

Examples found in repository?
examples/minimal.rs (line 12)
8    fn next<F>(self, _runtime: &mut Runtime<Self, F>) -> Control<Self>
9    where
10        F: Frontend,
11    {
12        exit()
13    }
More examples
Hide additional examples
examples/rooms.rs (line 72)
17    fn next<F>(self, rt: &mut Runtime<Self, F>) -> Control<Self>
18    where
19        F: Frontend,
20    {
21        rt.clear();
22        match self {
23            Room::Start => {
24                rt.println("You are in a room.");
25                rt.wait()?;
26                let next_room = rt.multiple_choice_named(
27                    "Where do you want to go?",
28                    vec![
29                        ("The door with light behind it", Room::Exit),
30                        ("The door with no light behind it", Room::Side),
31                    ],
32                )?;
33                next(next_room)
34            }
35            Room::Side => {
36                rt.println(if rt.has_key {
37                    "There is nothing here."
38                } else {
39                    "There is a key on the floor."
40                });
41                rt.wait()?;
42                let pick_up_key = rt.multiple_choice_named(
43                    "What do you want to do?",
44                    Some(("Pick up the key", true))
45                        .filter(|_| !rt.has_key)
46                        .into_iter()
47                        .chain(Some(("Go back through the door", false))),
48                )?;
49                if pick_up_key {
50                    rt.has_key = true;
51                    next(Room::Side)
52                } else {
53                    next(Room::Start)
54                }
55            }
56            Room::Exit => {
57                rt.println("There is another door with a bright light behind it.");
58                rt.wait()?;
59                let try_to_leave = rt.multiple_choice_named(
60                    "Where do you want to go?",
61                    vec![
62                        ("Through the door ahead", true),
63                        ("Back through the door you came in", false),
64                    ],
65                )?;
66                if try_to_leave {
67                    if rt.has_key {
68                        rt.println("The door is locked. You unlock the door with your key.");
69                        rt.wait()?;
70                        rt.println("You escaped! You win!");
71                        rt.wait()?;
72                        exit()
73                    } else {
74                        rt.println("The door is locked.");
75                        rt.wait()?;
76                        next(Room::Exit)
77                    }
78                } else {
79                    next(Room::Start)
80                }
81            }
82        }
83    }
84}
85
86#[derive(Clone)]
87struct Inventory;
88
89impl Node for Inventory {
90    type State = State;
91    fn next<F>(self, rt: &mut Runtime<Self, F>) -> Control<Self>
92    where
93        F: Frontend,
94    {
95        if rt.has_key {
96            rt.println("You have a key");
97        } else {
98            rt.println("You have nothing");
99        }
100        exit()
101    }