pub trait App: LinePrinter {
Show 49 methods
// Required methods
fn get_store(&mut self) -> &mut Box<dyn Store>;
fn get_user(&self) -> &User;
fn get_maze(&self) -> &Maze;
fn get_maze_mut(&mut self) -> &mut Maze;
fn read_key(&mut self) -> Result<Option<char>, Error>;
fn read_line(&mut self) -> Result<Option<String>, Error>;
fn get_line_printer(&mut self) -> &mut dyn LinePrinter;
// Provided methods
fn get_maze_name(&self) -> String { ... }
fn maze_name_exists(&mut self, name: &str) -> bool { ... }
fn print_lines(
&mut self,
lines: Vec<&'static str>,
) -> Result<(), Box<dyn Error>> { ... }
fn str_to_lines(s: &'static str) -> Vec<&'static str> { ... }
fn get_welcome_banner_lines() -> Vec<&'static str> { ... }
fn print_welcome_banner(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn get_menu_lines() -> Vec<&'static str> { ... }
fn print_menu(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn get_press_any_key_text() -> &'static str { ... }
fn press_any_key(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn prompt_yes_no(&mut self, message: &str) -> Result<bool, Box<dyn Error>> { ... }
fn prompt_text(&mut self, message: &str) -> Result<String, Box<dyn Error>> { ... }
fn prompt_number(
&mut self,
message: &str,
min_limit: Option<usize>,
max_limit: Option<usize>,
) -> Result<usize, Box<dyn Error>> { ... }
fn print_maze_dimensions(
&mut self,
prefix: &str,
) -> Result<(), Box<dyn Error>> { ... }
fn do_insert_rows(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_delete_rows(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_insert_cols(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_delete_cols(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn get_maze_dims(&self) -> (usize, usize) { ... }
fn maze_has_cells(&mut self) -> bool { ... }
fn process_set_endpoint(
&mut self,
start: bool,
) -> Result<(), Box<dyn Error>> { ... }
fn do_set_start(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_set_finish(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn process_walls(
&mut self,
title: &str,
modify_char: char,
) -> Result<(), Box<dyn Error>> { ... }
fn do_set_walls(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_clear_walls(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_resize(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_empty(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn print_maze(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_solve(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_print(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_open(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn get_maze_names(&mut self) -> Result<Vec<String>, Box<dyn Error>> { ... }
fn print_maze_names(&mut self) -> Result<usize, Box<dyn Error>> { ... }
fn do_list(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn save_maze(
&mut self,
name: &str,
prompt_overwrite: bool,
) -> Result<(), Box<dyn Error>> { ... }
fn do_save(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn do_save_as(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn delete_maze(&mut self, name: &str) -> Result<(), Box<dyn Error>> { ... }
fn do_delete(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn process_keys(&mut self) -> Result<(), Box<dyn Error>> { ... }
fn run(&mut self) -> Result<(), Box<dyn Error>> { ... }
}Required Methods§
fn get_store(&mut self) -> &mut Box<dyn Store>
fn get_user(&self) -> &User
fn get_maze(&self) -> &Maze
fn get_maze_mut(&mut self) -> &mut Maze
fn read_key(&mut self) -> Result<Option<char>, Error>
fn read_line(&mut self) -> Result<Option<String>, Error>
fn get_line_printer(&mut self) -> &mut dyn LinePrinter
Provided Methods§
fn get_maze_name(&self) -> String
fn maze_name_exists(&mut self, name: &str) -> bool
fn print_lines( &mut self, lines: Vec<&'static str>, ) -> Result<(), Box<dyn Error>>
fn str_to_lines(s: &'static str) -> Vec<&'static str>
fn get_press_any_key_text() -> &'static str
fn press_any_key(&mut self) -> Result<(), Box<dyn Error>>
fn prompt_yes_no(&mut self, message: &str) -> Result<bool, Box<dyn Error>>
fn prompt_text(&mut self, message: &str) -> Result<String, Box<dyn Error>>
fn prompt_number( &mut self, message: &str, min_limit: Option<usize>, max_limit: Option<usize>, ) -> Result<usize, Box<dyn Error>>
fn print_maze_dimensions(&mut self, prefix: &str) -> Result<(), Box<dyn Error>>
fn do_insert_rows(&mut self) -> Result<(), Box<dyn Error>>
fn do_delete_rows(&mut self) -> Result<(), Box<dyn Error>>
fn do_insert_cols(&mut self) -> Result<(), Box<dyn Error>>
fn do_delete_cols(&mut self) -> Result<(), Box<dyn Error>>
fn get_maze_dims(&self) -> (usize, usize)
fn maze_has_cells(&mut self) -> bool
fn process_set_endpoint(&mut self, start: bool) -> Result<(), Box<dyn Error>>
fn do_set_start(&mut self) -> Result<(), Box<dyn Error>>
fn do_set_finish(&mut self) -> Result<(), Box<dyn Error>>
fn process_walls( &mut self, title: &str, modify_char: char, ) -> Result<(), Box<dyn Error>>
fn do_set_walls(&mut self) -> Result<(), Box<dyn Error>>
fn do_clear_walls(&mut self) -> Result<(), Box<dyn Error>>
fn do_resize(&mut self) -> Result<(), Box<dyn Error>>
fn do_empty(&mut self) -> Result<(), Box<dyn Error>>
fn print_maze(&mut self) -> Result<(), Box<dyn Error>>
fn do_solve(&mut self) -> Result<(), Box<dyn Error>>
fn do_print(&mut self) -> Result<(), Box<dyn Error>>
fn do_open(&mut self) -> Result<(), Box<dyn Error>>
fn get_maze_names(&mut self) -> Result<Vec<String>, Box<dyn Error>>
fn print_maze_names(&mut self) -> Result<usize, Box<dyn Error>>
fn do_list(&mut self) -> Result<(), Box<dyn Error>>
fn save_maze( &mut self, name: &str, prompt_overwrite: bool, ) -> Result<(), Box<dyn Error>>
fn do_save(&mut self) -> Result<(), Box<dyn Error>>
fn do_save_as(&mut self) -> Result<(), Box<dyn Error>>
fn delete_maze(&mut self, name: &str) -> Result<(), Box<dyn Error>>
fn do_delete(&mut self) -> Result<(), Box<dyn Error>>
fn process_keys(&mut self) -> Result<(), Box<dyn Error>>
fn run(&mut self) -> Result<(), Box<dyn Error>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.