SYMBOL INDEX (1047 symbols across 217 files) FILE: build.rs function main (line 1) | fn main() { FILE: exercises/00_intro/intro1.rs function main (line 8) | fn main() { FILE: exercises/00_intro/intro2.rs function main (line 1) | fn main() { FILE: exercises/01_variables/variables1.rs function main (line 1) | fn main() { FILE: exercises/01_variables/variables2.rs function main (line 1) | fn main() { FILE: exercises/01_variables/variables3.rs function main (line 1) | fn main() { FILE: exercises/01_variables/variables4.rs function main (line 2) | fn main() { FILE: exercises/01_variables/variables5.rs function main (line 1) | fn main() { FILE: exercises/01_variables/variables6.rs function main (line 4) | fn main() { FILE: exercises/02_functions/functions1.rs function main (line 3) | fn main() { FILE: exercises/02_functions/functions2.rs function call_me (line 2) | fn call_me(num:) { function main (line 8) | fn main() { FILE: exercises/02_functions/functions3.rs function call_me (line 1) | fn call_me(num: u8) { function main (line 7) | fn main() { FILE: exercises/02_functions/functions4.rs function is_even (line 6) | fn is_even(num: i64) -> bool { function sale_price (line 11) | fn sale_price(price: i64) -> { function main (line 19) | fn main() { FILE: exercises/02_functions/functions5.rs function square (line 2) | fn square(num: i32) -> i32 { function main (line 6) | fn main() { FILE: exercises/03_if/if1.rs function bigger (line 1) | fn bigger(a: i32, b: i32) -> i32 { function main (line 9) | fn main() { function ten_is_bigger_than_eight (line 19) | fn ten_is_bigger_than_eight() { function fortytwo_is_bigger_than_thirtytwo (line 24) | fn fortytwo_is_bigger_than_thirtytwo() { function equal_numbers (line 29) | fn equal_numbers() { FILE: exercises/03_if/if2.rs function picky_eater (line 2) | fn picky_eater(food: &str) -> &str { function main (line 10) | fn main() { function yummy_food (line 21) | fn yummy_food() { function neutral_food (line 27) | fn neutral_food() { function default_disliked_food (line 32) | fn default_disliked_food() { FILE: exercises/03_if/if3.rs function animal_habitat (line 1) | fn animal_habitat(animal: &str) -> &str { function main (line 25) | fn main() { function gopher_lives_in_burrow (line 35) | fn gopher_lives_in_burrow() { function snake_lives_in_desert (line 40) | fn snake_lives_in_desert() { function crab_lives_on_beach (line 45) | fn crab_lives_on_beach() { function unknown_animal (line 50) | fn unknown_animal() { FILE: exercises/04_primitive_types/primitive_types1.rs function main (line 3) | fn main() { FILE: exercises/04_primitive_types/primitive_types2.rs function main (line 3) | fn main() { FILE: exercises/04_primitive_types/primitive_types3.rs function main (line 1) | fn main() { FILE: exercises/04_primitive_types/primitive_types4.rs function main (line 1) | fn main() { function slice_out_of_array (line 8) | fn slice_out_of_array() { FILE: exercises/04_primitive_types/primitive_types5.rs function main (line 1) | fn main() { FILE: exercises/04_primitive_types/primitive_types6.rs function main (line 1) | fn main() { function indexing_tuple (line 8) | fn indexing_tuple() { FILE: exercises/05_vecs/vecs1.rs function array_and_vec (line 1) | fn array_and_vec() -> ([i32; 4], Vec) { function main (line 11) | fn main() { function test_array_and_vec_similarity (line 20) | fn test_array_and_vec_similarity() { FILE: exercises/05_vecs/vecs2.rs function vec_loop (line 1) | fn vec_loop(input: &[i32]) -> Vec { function main (line 12) | fn main() { function test_vec_loop (line 21) | fn test_vec_loop() { FILE: exercises/06_move_semantics/move_semantics1.rs function fill_vec (line 2) | fn fill_vec(vec: Vec) -> Vec { function main (line 10) | fn main() { function move_semantics1 (line 19) | fn move_semantics1() { FILE: exercises/06_move_semantics/move_semantics2.rs function fill_vec (line 1) | fn fill_vec(vec: Vec) -> Vec { function main (line 9) | fn main() { function move_semantics2 (line 20) | fn move_semantics2() { FILE: exercises/06_move_semantics/move_semantics3.rs function fill_vec (line 2) | fn fill_vec(vec: Vec) -> Vec { function main (line 8) | fn main() { function move_semantics3 (line 17) | fn move_semantics3() { FILE: exercises/06_move_semantics/move_semantics4.rs function main (line 1) | fn main() { function move_semantics4 (line 10) | fn move_semantics4() { FILE: exercises/06_move_semantics/move_semantics5.rs function get_char (line 7) | fn get_char(data: String) -> char { function string_uppercase (line 12) | fn string_uppercase(mut data: &String) { function main (line 18) | fn main() { FILE: exercises/07_structs/structs1.rs type ColorRegularStruct (line 1) | struct ColorRegularStruct { type ColorTupleStruct (line 6) | struct ColorTupleStruct(/* TODO: Add the fields that the test `tuple_str... type UnitStruct (line 9) | struct UnitStruct; function main (line 11) | fn main() { function regular_structs (line 20) | fn regular_structs() { function tuple_structs (line 30) | fn tuple_structs() { function unit_structs (line 40) | fn unit_structs() { FILE: exercises/07_structs/structs2.rs type Order (line 2) | struct Order { function create_order_template (line 12) | fn create_order_template() -> Order { function main (line 24) | fn main() { function your_order (line 33) | fn your_order() { FILE: exercises/07_structs/structs3.rs type Package (line 5) | struct Package { method new (line 12) | fn new(sender_country: String, recipient_country: String, weight_in_gr... method is_international (line 27) | fn is_international(&self) { method get_fees (line 33) | fn get_fees(&self, cents_per_gram: u32) { function main (line 38) | fn main() { function fail_creating_weightless_package (line 48) | fn fail_creating_weightless_package() { function create_international_package (line 56) | fn create_international_package() { function create_local_package (line 66) | fn create_local_package() { function calculate_transport_fees (line 76) | fn calculate_transport_fees() { FILE: exercises/08_enums/enums1.rs type Message (line 2) | enum Message { function main (line 6) | fn main() { FILE: exercises/08_enums/enums2.rs type Point (line 2) | struct Point { type Message (line 8) | enum Message { method call (line 13) | fn call(&self) { function main (line 18) | fn main() { FILE: exercises/08_enums/enums3.rs type Point (line 1) | struct Point { type Message (line 6) | enum Message { type State (line 14) | struct State { method resize (line 25) | fn resize(&mut self, width: u64, height: u64) { method move_position (line 30) | fn move_position(&mut self, point: Point) { method echo (line 34) | fn echo(&mut self, s: String) { method change_color (line 38) | fn change_color(&mut self, red: u8, green: u8, blue: u8) { method quit (line 42) | fn quit(&mut self) { method process (line 46) | fn process(&mut self, message: Message) { function main (line 52) | fn main() { function test_match_message_call (line 61) | fn test_match_message_call() { FILE: exercises/09_strings/strings1.rs function current_favorite_color (line 2) | fn current_favorite_color() -> String { function main (line 6) | fn main() { FILE: exercises/09_strings/strings2.rs function is_a_color_word (line 2) | fn is_a_color_word(attempt: &str) -> bool { function main (line 6) | fn main() { FILE: exercises/09_strings/strings3.rs function trim_me (line 1) | fn trim_me(input: &str) -> &str { function compose_me (line 5) | fn compose_me(input: &str) -> String { function replace_me (line 9) | fn replace_me(input: &str) -> String { function main (line 13) | fn main() { function trim_a_string (line 22) | fn trim_a_string() { function compose_a_string (line 30) | fn compose_a_string() { function replace_a_string (line 36) | fn replace_a_string() { FILE: exercises/09_strings/strings4.rs function placeholder (line 2) | fn placeholder() {} function string_slice (line 4) | fn string_slice(arg: &str) { function string (line 8) | fn string(arg: String) { function main (line 15) | fn main() { FILE: exercises/10_modules/modules1.rs function get_secret_recipe (line 4) | fn get_secret_recipe() -> String { function make_sausage (line 8) | fn make_sausage() { function main (line 14) | fn main() { FILE: exercises/10_modules/modules2.rs constant PEAR (line 10) | pub const PEAR: &str = "Pear"; constant APPLE (line 11) | pub const APPLE: &str = "Apple"; constant CUCUMBER (line 15) | pub const CUCUMBER: &str = "Cucumber"; constant CARROT (line 16) | pub const CARROT: &str = "Carrot"; function main (line 20) | fn main() { FILE: exercises/10_modules/modules3.rs function main (line 8) | fn main() { FILE: exercises/11_hashmaps/hashmaps1.rs function fruit_basket (line 9) | fn fruit_basket() -> HashMap { function main (line 21) | fn main() { function at_least_three_types_of_fruits (line 30) | fn at_least_three_types_of_fruits() { function at_least_five_fruits (line 36) | fn at_least_five_fruits() { FILE: exercises/11_hashmaps/hashmaps2.rs type Fruit (line 14) | enum Fruit { function fruit_basket (line 22) | fn fruit_basket(basket: &mut HashMap) { function main (line 38) | fn main() { function get_fruit_basket (line 47) | fn get_fruit_basket() -> HashMap { function test_given_fruits_are_not_modified (line 53) | fn test_given_fruits_are_not_modified() { function at_least_five_types_of_fruits (line 62) | fn at_least_five_types_of_fruits() { function greater_than_eleven_fruits (line 70) | fn greater_than_eleven_fruits() { function all_fruit_types_in_basket (line 78) | fn all_fruit_types_in_basket() { FILE: exercises/11_hashmaps/hashmaps3.rs type TeamScores (line 13) | struct TeamScores { function build_scores_table (line 18) | fn build_scores_table(results: &str) -> HashMap<&str, TeamScores> { function main (line 39) | fn main() { constant RESULTS (line 47) | const RESULTS: &str = "England,France,4,2 function build_scores (line 54) | fn build_scores() { function validate_team_score_1 (line 63) | fn validate_team_score_1() { function validate_team_score_2 (line 71) | fn validate_team_score_2() { FILE: exercises/12_options/options1.rs function maybe_ice_cream (line 5) | fn maybe_ice_cream(hour_of_day: u16) -> Option { function main (line 9) | fn main() { function raw_value (line 18) | fn raw_value() { function check_ice_cream (line 27) | fn check_ice_cream() { FILE: exercises/12_options/options2.rs function main (line 1) | fn main() { function simple_option (line 8) | fn simple_option() { function layered_option (line 19) | fn layered_option() { FILE: exercises/12_options/options3.rs type Point (line 2) | struct Point { function main (line 7) | fn main() { FILE: exercises/13_error_handling/errors1.rs function generate_nametag_text (line 7) | fn generate_nametag_text(name: String) -> Option { function main (line 16) | fn main() { function generates_nametag_text_for_a_nonempty_name (line 25) | fn generates_nametag_text_for_a_nonempty_name() { function explains_why_generating_nametag_text_fails (line 33) | fn explains_why_generating_nametag_text_fails() { FILE: exercises/13_error_handling/errors2.rs function total_cost (line 19) | fn total_cost(item_quantity: &str) -> Result { function main (line 29) | fn main() { function item_quantity_is_a_valid_number (line 39) | fn item_quantity_is_a_valid_number() { function item_quantity_is_an_invalid_number (line 44) | fn item_quantity_is_an_invalid_number() { FILE: exercises/13_error_handling/errors3.rs function total_cost (line 8) | fn total_cost(item_quantity: &str) -> Result { function main (line 18) | fn main() { FILE: exercises/13_error_handling/errors4.rs type CreationError (line 2) | enum CreationError { type PositiveNonzeroInteger (line 8) | struct PositiveNonzeroInteger(u64); method new (line 11) | fn new(value: i64) -> Result { function main (line 18) | fn main() { function test_creation (line 27) | fn test_creation() { FILE: exercises/13_error_handling/errors5.rs type CreationError (line 18) | enum CreationError { method fmt (line 25) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type PositiveNonzeroInteger (line 37) | struct PositiveNonzeroInteger(u64); method new (line 40) | fn new(value: i64) -> Result { function main (line 51) | fn main() { FILE: exercises/13_error_handling/errors6.rs type CreationError (line 10) | enum CreationError { type ParsePosNonzeroError (line 17) | enum ParsePosNonzeroError { method from_creation (line 23) | fn from_creation(err: CreationError) -> Self { type PositiveNonzeroInteger (line 32) | struct PositiveNonzeroInteger(u64); method new (line 35) | fn new(value: i64) -> Result { method parse (line 43) | fn parse(s: &str) -> Result { function main (line 51) | fn main() { function test_parse_error (line 60) | fn test_parse_error() { function test_negative (line 68) | fn test_negative() { function test_zero (line 76) | fn test_zero() { function test_positive (line 84) | fn test_positive() { FILE: exercises/14_generics/generics1.rs function main (line 5) | fn main() { FILE: exercises/14_generics/generics2.rs type Wrapper (line 3) | struct Wrapper { method new (line 9) | fn new(value: u32) -> Self { function main (line 14) | fn main() { function store_u32_in_wrapper (line 23) | fn store_u32_in_wrapper() { function store_str_in_wrapper (line 28) | fn store_str_in_wrapper() { FILE: exercises/15_traits/traits1.rs type AppendBar (line 3) | trait AppendBar { method append_bar (line 4) | fn append_bar(self) -> Self; function main (line 11) | fn main() { function is_foo_bar (line 22) | fn is_foo_bar() { function is_bar_bar (line 27) | fn is_bar_bar() { FILE: exercises/15_traits/traits2.rs type AppendBar (line 1) | trait AppendBar { method append_bar (line 2) | fn append_bar(self) -> Self; function main (line 8) | fn main() { function is_vec_pop_eq_bar (line 17) | fn is_vec_pop_eq_bar() { FILE: exercises/15_traits/traits3.rs type Licensed (line 1) | trait Licensed { method licensing_info (line 6) | fn licensing_info(&self) -> String; type SomeSoftware (line 9) | struct SomeSoftware { type OtherSoftware (line 13) | struct OtherSoftware { function main (line 20) | fn main() { function is_licensing_info_the_same (line 29) | fn is_licensing_info_the_same() { FILE: exercises/15_traits/traits4.rs type Licensed (line 1) | trait Licensed { method licensing_info (line 2) | fn licensing_info(&self) -> String { type SomeSoftware (line 7) | struct SomeSoftware; type OtherSoftware (line 8) | struct OtherSoftware; function compare_license_types (line 14) | fn compare_license_types(software1: ???, software2: ???) -> bool { function main (line 18) | fn main() { function compare_license_information (line 27) | fn compare_license_information() { function compare_license_information_backwards (line 32) | fn compare_license_information_backwards() { FILE: exercises/15_traits/traits5.rs type SomeTrait (line 1) | trait SomeTrait { method some_function (line 2) | fn some_function(&self) -> bool { type OtherTrait (line 7) | trait OtherTrait { method other_function (line 8) | fn other_function(&self) -> bool { type SomeStruct (line 13) | struct SomeStruct; type OtherStruct (line 17) | struct OtherStruct; function some_func (line 22) | fn some_func(item: ???) -> bool { function main (line 26) | fn main() { function test_some_func (line 35) | fn test_some_func() { FILE: exercises/16_lifetimes/lifetimes1.rs function longest (line 7) | fn longest(x: &str, y: &str) -> &str { function main (line 15) | fn main() { function test_longest (line 24) | fn test_longest() { FILE: exercises/16_lifetimes/lifetimes2.rs function longest (line 2) | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { function main (line 10) | fn main() { FILE: exercises/16_lifetimes/lifetimes3.rs type Book (line 4) | struct Book { function main (line 9) | fn main() { FILE: exercises/17_tests/tests1.rs function is_even (line 4) | fn is_even(n: i64) -> bool { function main (line 8) | fn main() { function you_can_assert (line 18) | fn you_can_assert() { FILE: exercises/17_tests/tests2.rs function power_of_2 (line 3) | fn power_of_2(n: u8) -> u64 { function main (line 7) | fn main() { function you_can_assert_eq (line 16) | fn you_can_assert_eq() { FILE: exercises/17_tests/tests3.rs type Rectangle (line 1) | struct Rectangle { method new (line 8) | fn new(width: i32, height: i32) -> Self { function main (line 19) | fn main() { function correct_width_and_height (line 28) | fn correct_width_and_height() { function negative_width (line 39) | fn negative_width() { function negative_height (line 46) | fn negative_height() { FILE: exercises/18_iterators/iterators1.rs function main (line 5) | fn main() { function iterators (line 12) | fn iterators() { FILE: exercises/18_iterators/iterators2.rs function capitalize_first (line 6) | fn capitalize_first(input: &str) -> String { function capitalize_words_vector (line 17) | fn capitalize_words_vector(words: &[&str]) -> Vec { function capitalize_words_string (line 24) | fn capitalize_words_string(words: &[&str]) -> String { function main (line 28) | fn main() { function test_success (line 37) | fn test_success() { function test_empty (line 42) | fn test_empty() { function test_iterate_string_vec (line 47) | fn test_iterate_string_vec() { function test_iterate_into_string (line 53) | fn test_iterate_into_string() { FILE: exercises/18_iterators/iterators3.rs type DivisionError (line 2) | enum DivisionError { function divide (line 13) | fn divide(a: i64, b: i64) -> Result { function result_with_list (line 19) | fn result_with_list() { function list_of_results (line 26) | fn list_of_results() { function main (line 31) | fn main() { function test_success (line 40) | fn test_success() { function test_divide_by_0 (line 47) | fn test_divide_by_0() { function test_integer_overflow (line 52) | fn test_integer_overflow() { function test_not_divisible (line 57) | fn test_not_divisible() { function test_divide_0_by_something (line 62) | fn test_divide_0_by_something() { function test_result_with_list (line 67) | fn test_result_with_list() { function test_list_of_results (line 72) | fn test_list_of_results() { FILE: exercises/18_iterators/iterators4.rs function factorial (line 1) | fn factorial(num: u64) -> u64 { function main (line 15) | fn main() { function factorial_of_0 (line 24) | fn factorial_of_0() { function factorial_of_1 (line 29) | fn factorial_of_1() { function factorial_of_2 (line 33) | fn factorial_of_2() { function factorial_of_4 (line 38) | fn factorial_of_4() { FILE: exercises/18_iterators/iterators5.rs type Progress (line 10) | enum Progress { function count_for (line 16) | fn count_for(map: &HashMap, value: Progress) -> usize { function count_iterator (line 28) | fn count_iterator(map: &HashMap, value: Progress) -> u... function count_collection_for (line 33) | fn count_collection_for(collection: &[HashMap], value:... function count_collection_iterator (line 47) | fn count_collection_iterator(collection: &[HashMap], v... function main (line 53) | fn main() { function get_map (line 61) | fn get_map() -> HashMap { function get_vec_map (line 75) | fn get_vec_map() -> Vec> { function count_complete (line 91) | fn count_complete() { function count_some (line 97) | fn count_some() { function count_none (line 103) | fn count_none() { function count_complete_equals_for (line 109) | fn count_complete_equals_for() { function count_collection_complete (line 121) | fn count_collection_complete() { function count_collection_some (line 130) | fn count_collection_some() { function count_collection_none (line 136) | fn count_collection_none() { function count_collection_equals_for (line 142) | fn count_collection_equals_for() { FILE: exercises/19_smart_pointers/arc1.rs function main (line 22) | fn main() { FILE: exercises/19_smart_pointers/box1.rs type List (line 14) | enum List { function create_empty_list (line 20) | fn create_empty_list() -> List { function create_non_empty_list (line 25) | fn create_non_empty_list() -> List { function main (line 29) | fn main() { function test_create_empty_list (line 42) | fn test_create_empty_list() { function test_create_non_empty_list (line 47) | fn test_create_non_empty_list() { FILE: exercises/19_smart_pointers/cow1.rs function abs_all (line 8) | fn abs_all(input: &mut Cow<[i32]>) { function main (line 18) | fn main() { function reference_mutation (line 27) | fn reference_mutation() { function reference_no_mutation (line 36) | fn reference_no_mutation() { function owned_no_mutation (line 46) | fn owned_no_mutation() { function owned_mutation (line 59) | fn owned_mutation() { FILE: exercises/19_smart_pointers/rc1.rs type Sun (line 9) | struct Sun; type Planet (line 12) | enum Planet { method details (line 24) | fn details(&self) { function main (line 29) | fn main() { function rc1 (line 38) | fn rc1() { FILE: exercises/20_threads/threads1.rs function main (line 11) | fn main() { FILE: exercises/20_threads/threads2.rs type JobStatus (line 7) | struct JobStatus { function main (line 11) | fn main() { FILE: exercises/20_threads/threads3.rs type Queue (line 3) | struct Queue { method new (line 9) | fn new() -> Self { function send_tx (line 17) | fn send_tx(q: Queue, tx: mpsc::Sender) { function main (line 37) | fn main() { function threads3 (line 46) | fn threads3() { FILE: exercises/21_macros/macros1.rs function main (line 7) | fn main() { FILE: exercises/21_macros/macros2.rs function main (line 1) | fn main() { FILE: exercises/21_macros/macros3.rs function main (line 11) | fn main() { FILE: exercises/21_macros/macros4.rs function main (line 12) | fn main() { FILE: exercises/22_clippy/clippy1.rs function main (line 7) | fn main() { FILE: exercises/22_clippy/clippy2.rs function main (line 1) | fn main() { FILE: exercises/22_clippy/clippy3.rs function main (line 5) | fn main() { FILE: exercises/23_conversions/as_ref_mut.rs function byte_counter (line 8) | fn byte_counter(arg: T) -> usize { function char_counter (line 14) | fn char_counter(arg: T) -> usize { function num_sq (line 20) | fn num_sq(arg: &mut T) { function main (line 24) | fn main() { function different_counts (line 33) | fn different_counts() { function same_counts (line 39) | fn same_counts() { function different_counts_using_string (line 45) | fn different_counts_using_string() { function same_counts_using_string (line 51) | fn same_counts_using_string() { function mut_box (line 57) | fn mut_box() { FILE: exercises/23_conversions/from_into.rs type Person (line 7) | struct Person { method from (line 37) | fn from(s: &str) -> Self {} method default (line 15) | fn default() -> Self { function main (line 40) | fn main() { function test_default (line 55) | fn test_default() { function test_bad_convert (line 62) | fn test_bad_convert() { function test_good_convert (line 69) | fn test_good_convert() { function test_bad_age (line 76) | fn test_bad_age() { function test_missing_comma_and_age (line 83) | fn test_missing_comma_and_age() { function test_missing_age (line 90) | fn test_missing_age() { function test_missing_name (line 97) | fn test_missing_name() { function test_missing_name_and_age (line 104) | fn test_missing_name_and_age() { function test_missing_name_and_invalid_age (line 111) | fn test_missing_name_and_invalid_age() { function test_trailing_comma (line 118) | fn test_trailing_comma() { function test_trailing_comma_and_some_string (line 125) | fn test_trailing_comma_and_some_string() { FILE: exercises/23_conversions/from_str.rs type Person (line 12) | struct Person { type ParsePersonError (line 19) | enum ParsePersonError { type Err (line 42) | type Err = ParsePersonError; method from_str (line 44) | fn from_str(s: &str) -> Result {} function main (line 47) | fn main() { function empty_input (line 58) | fn empty_input() { function good_input (line 63) | fn good_input() { function missing_age (line 72) | fn missing_age() { function invalid_age (line 77) | fn invalid_age() { function missing_comma_and_age (line 82) | fn missing_comma_and_age() { function missing_name (line 87) | fn missing_name() { function missing_name_and_age (line 92) | fn missing_name_and_age() { function missing_name_and_invalid_age (line 97) | fn missing_name_and_invalid_age() { function trailing_comma (line 105) | fn trailing_comma() { function trailing_comma_and_some_string (line 110) | fn trailing_comma_and_some_string() { FILE: exercises/23_conversions/try_from_into.rs type Color (line 11) | struct Color { type Error (line 29) | type Error = IntoColorError; method try_from (line 31) | fn try_from(tuple: (i16, i16, i16)) -> Result {} type Error (line 36) | type Error = IntoColorError; method try_from (line 38) | fn try_from(arr: [i16; 3]) -> Result {} type Error (line 44) | type Error = IntoColorError; method try_from (line 46) | fn try_from(slice: &[i16]) -> Result {} type IntoColorError (line 19) | enum IntoColorError { function main (line 49) | fn main() { function test_tuple_out_of_range_positive (line 73) | fn test_tuple_out_of_range_positive() { function test_tuple_out_of_range_negative (line 78) | fn test_tuple_out_of_range_negative() { function test_tuple_sum (line 83) | fn test_tuple_sum() { function test_tuple_correct (line 88) | fn test_tuple_correct() { function test_array_out_of_range_positive (line 102) | fn test_array_out_of_range_positive() { function test_array_out_of_range_negative (line 108) | fn test_array_out_of_range_negative() { function test_array_sum (line 114) | fn test_array_sum() { function test_array_correct (line 120) | fn test_array_correct() { function test_slice_out_of_range_positive (line 134) | fn test_slice_out_of_range_positive() { function test_slice_out_of_range_negative (line 140) | fn test_slice_out_of_range_negative() { function test_slice_sum (line 146) | fn test_slice_sum() { function test_slice_correct (line 152) | fn test_slice_correct() { function test_slice_excess_length (line 167) | fn test_slice_excess_length() { function test_slice_insufficient_length (line 173) | fn test_slice_insufficient_length() { FILE: exercises/23_conversions/using_as.rs function average (line 5) | fn average(values: &[f64]) -> f64 { function main (line 11) | fn main() { function returns_proper_type_and_value (line 21) | fn returns_proper_type_and_value() { FILE: exercises/quizzes/quiz1.rs function main (line 15) | fn main() { function verify_test (line 25) | fn verify_test() { FILE: exercises/quizzes/quiz2.rs type Command (line 20) | enum Command { function main (line 33) | fn main() { function it_works (line 44) | fn it_works() { FILE: exercises/quizzes/quiz3.rs type ReportCard (line 15) | struct ReportCard { method print (line 23) | fn print(&self) -> String { function main (line 31) | fn main() { function generate_numeric_report_card (line 40) | fn generate_numeric_report_card() { function generate_alphabetic_report_card (line 53) | fn generate_alphabetic_report_card() { FILE: rustlings-macros/src/lib.rs type ExerciseInfo (line 6) | struct ExerciseInfo<'a> { type InfoFile (line 12) | struct InfoFile<'a> { function include_files (line 18) | pub fn include_files(_: TokenStream) -> TokenStream { FILE: solutions/00_intro/intro1.rs function main (line 1) | fn main() { FILE: solutions/00_intro/intro2.rs function main (line 1) | fn main() { FILE: solutions/01_variables/variables1.rs function main (line 1) | fn main() { FILE: solutions/01_variables/variables2.rs function main (line 1) | fn main() { FILE: solutions/01_variables/variables3.rs function main (line 3) | fn main() { FILE: solutions/01_variables/variables4.rs function main (line 1) | fn main() { FILE: solutions/01_variables/variables5.rs function main (line 1) | fn main() { FILE: solutions/01_variables/variables6.rs constant NUMBER (line 2) | const NUMBER: u64 = 3; function main (line 4) | fn main() { FILE: solutions/02_functions/functions1.rs function call_me (line 2) | fn call_me() { function main (line 6) | fn main() { FILE: solutions/02_functions/functions2.rs function call_me (line 3) | fn call_me(num: u64) { function main (line 9) | fn main() { FILE: solutions/02_functions/functions3.rs function call_me (line 1) | fn call_me(num: u8) { function main (line 7) | fn main() { FILE: solutions/02_functions/functions4.rs function is_even (line 1) | fn is_even(num: i64) -> bool { function sale_price (line 6) | fn sale_price(price: i64) -> i64 { function main (line 14) | fn main() { FILE: solutions/02_functions/functions5.rs function square (line 1) | fn square(num: i32) -> i32 { function main (line 6) | fn main() { FILE: solutions/03_if/if1.rs function bigger (line 1) | fn bigger(a: i32, b: i32) -> i32 { function main (line 5) | fn main() { function ten_is_bigger_than_eight (line 15) | fn ten_is_bigger_than_eight() { function fortytwo_is_bigger_than_thirtytwo (line 20) | fn fortytwo_is_bigger_than_thirtytwo() { function equal_numbers (line 25) | fn equal_numbers() { FILE: solutions/03_if/if2.rs function picky_eater (line 1) | fn picky_eater(food: &str) -> &str { function main (line 11) | fn main() { function yummy_food (line 20) | fn yummy_food() { function neutral_food (line 25) | fn neutral_food() { function default_disliked_food (line 30) | fn default_disliked_food() { FILE: solutions/03_if/if3.rs function animal_habitat (line 1) | fn animal_habitat(animal: &str) -> &str { function main (line 26) | fn main() { function gopher_lives_in_burrow (line 35) | fn gopher_lives_in_burrow() { function snake_lives_in_desert (line 40) | fn snake_lives_in_desert() { function crab_lives_on_beach (line 45) | fn crab_lives_on_beach() { function unknown_animal (line 50) | fn unknown_animal() { FILE: solutions/04_primitive_types/primitive_types1.rs function main (line 1) | fn main() { FILE: solutions/04_primitive_types/primitive_types2.rs function main (line 1) | fn main() { FILE: solutions/04_primitive_types/primitive_types3.rs function main (line 1) | fn main() { FILE: solutions/04_primitive_types/primitive_types4.rs function main (line 1) | fn main() { function slice_out_of_array (line 8) | fn slice_out_of_array() { FILE: solutions/04_primitive_types/primitive_types5.rs function main (line 1) | fn main() { FILE: solutions/04_primitive_types/primitive_types6.rs function main (line 1) | fn main() { function indexing_tuple (line 8) | fn indexing_tuple() { FILE: solutions/05_vecs/vecs1.rs function array_and_vec (line 1) | fn array_and_vec() -> ([i32; 4], Vec) { function main (line 10) | fn main() { function test_array_and_vec_similarity (line 19) | fn test_array_and_vec_similarity() { FILE: solutions/05_vecs/vecs2.rs function vec_loop (line 1) | fn vec_loop(input: &[i32]) -> Vec { function main (line 11) | fn main() { function test_vec_loop (line 20) | fn test_vec_loop() { FILE: solutions/06_move_semantics/move_semantics1.rs function fill_vec (line 1) | fn fill_vec(vec: Vec) -> Vec { function main (line 10) | fn main() { function move_semantics1 (line 19) | fn move_semantics1() { FILE: solutions/06_move_semantics/move_semantics2.rs function fill_vec (line 1) | fn fill_vec(vec: Vec) -> Vec { function main (line 9) | fn main() { function move_semantics2 (line 18) | fn move_semantics2() { FILE: solutions/06_move_semantics/move_semantics3.rs function fill_vec (line 1) | fn fill_vec(mut vec: Vec) -> Vec { function main (line 8) | fn main() { function move_semantics3 (line 17) | fn move_semantics3() { FILE: solutions/06_move_semantics/move_semantics4.rs function main (line 1) | fn main() { function move_semantics4 (line 8) | fn move_semantics4() { FILE: solutions/06_move_semantics/move_semantics5.rs function get_char (line 6) | fn get_char(data: &String) -> char { function string_uppercase (line 11) | fn string_uppercase(mut data: String) { function main (line 17) | fn main() { FILE: solutions/07_structs/structs1.rs type ColorRegularStruct (line 1) | struct ColorRegularStruct { type ColorTupleStruct (line 7) | struct ColorTupleStruct(u8, u8, u8); type UnitStruct (line 10) | struct UnitStruct; function main (line 12) | fn main() { function regular_structs (line 21) | fn regular_structs() { function tuple_structs (line 34) | fn tuple_structs() { function unit_structs (line 43) | fn unit_structs() { FILE: solutions/07_structs/structs2.rs type Order (line 2) | struct Order { function create_order_template (line 12) | fn create_order_template() -> Order { function main (line 24) | fn main() { function your_order (line 33) | fn your_order() { FILE: solutions/07_structs/structs3.rs type Package (line 2) | struct Package { method new (line 9) | fn new(sender_country: String, recipient_country: String, weight_in_gr... method is_international (line 23) | fn is_international(&self) -> bool { method get_fees (line 28) | fn get_fees(&self, cents_per_gram: u32) -> u32 { function main (line 34) | fn main() { function fail_creating_weightless_package (line 44) | fn fail_creating_weightless_package() { function create_international_package (line 52) | fn create_international_package() { function create_local_package (line 62) | fn create_local_package() { function calculate_transport_fees (line 72) | fn calculate_transport_fees() { FILE: solutions/08_enums/enums1.rs type Message (line 2) | enum Message { function main (line 10) | fn main() { FILE: solutions/08_enums/enums2.rs type Point (line 2) | struct Point { type Message (line 8) | enum Message { method call (line 17) | fn call(&self) { function main (line 22) | fn main() { FILE: solutions/08_enums/enums3.rs type Point (line 1) | struct Point { type Message (line 6) | enum Message { type State (line 14) | struct State { method resize (line 24) | fn resize(&mut self, width: u64, height: u64) { method move_position (line 29) | fn move_position(&mut self, point: Point) { method echo (line 33) | fn echo(&mut self, s: String) { method change_color (line 37) | fn change_color(&mut self, red: u8, green: u8, blue: u8) { method quit (line 41) | fn quit(&mut self) { method process (line 45) | fn process(&mut self, message: Message) { function main (line 56) | fn main() { function test_match_message_call (line 65) | fn test_match_message_call() { FILE: solutions/09_strings/strings1.rs function current_favorite_color (line 1) | fn current_favorite_color() -> String { function main (line 6) | fn main() { FILE: solutions/09_strings/strings2.rs function is_a_color_word (line 1) | fn is_a_color_word(attempt: &str) -> bool { function main (line 5) | fn main() { FILE: solutions/09_strings/strings3.rs function trim_me (line 1) | fn trim_me(input: &str) -> &str { function compose_me (line 5) | fn compose_me(input: &str) -> String { function replace_me (line 12) | fn replace_me(input: &str) -> String { function main (line 16) | fn main() { function trim_a_string (line 25) | fn trim_a_string() { function compose_a_string (line 33) | fn compose_a_string() { function replace_a_string (line 39) | fn replace_a_string() { FILE: solutions/09_strings/strings4.rs function string_slice (line 1) | fn string_slice(arg: &str) { function string (line 5) | fn string(arg: String) { function main (line 9) | fn main() { FILE: solutions/10_modules/modules1.rs function get_secret_recipe (line 2) | fn get_secret_recipe() -> String { function make_sausage (line 7) | pub fn make_sausage() { function main (line 13) | fn main() { FILE: solutions/10_modules/modules2.rs constant PEAR (line 7) | pub const PEAR: &str = "Pear"; constant APPLE (line 8) | pub const APPLE: &str = "Apple"; constant CUCUMBER (line 12) | pub const CUCUMBER: &str = "Cucumber"; constant CARROT (line 13) | pub const CARROT: &str = "Carrot"; function main (line 17) | fn main() { FILE: solutions/10_modules/modules3.rs function main (line 3) | fn main() { FILE: solutions/11_hashmaps/hashmaps1.rs function fruit_basket (line 9) | fn fruit_basket() -> HashMap { function main (line 23) | fn main() { function at_least_three_types_of_fruits (line 32) | fn at_least_three_types_of_fruits() { function at_least_five_fruits (line 38) | fn at_least_five_fruits() { FILE: solutions/11_hashmaps/hashmaps2.rs type Fruit (line 14) | enum Fruit { function fruit_basket (line 22) | fn fruit_basket(basket: &mut HashMap) { function main (line 37) | fn main() { function get_fruit_basket (line 46) | fn get_fruit_basket() -> HashMap { function test_given_fruits_are_not_modified (line 52) | fn test_given_fruits_are_not_modified() { function at_least_five_types_of_fruits (line 61) | fn at_least_five_types_of_fruits() { function greater_than_eleven_fruits (line 69) | fn greater_than_eleven_fruits() { function all_fruit_types_in_basket (line 77) | fn all_fruit_types_in_basket() { FILE: solutions/11_hashmaps/hashmaps3.rs type TeamScores (line 13) | struct TeamScores { function build_scores_table (line 18) | fn build_scores_table(results: &str) -> HashMap<&str, TeamScores> { function main (line 45) | fn main() { constant RESULTS (line 53) | const RESULTS: &str = "England,France,4,2 function build_scores (line 60) | fn build_scores() { function validate_team_score_1 (line 71) | fn validate_team_score_1() { function validate_team_score_2 (line 79) | fn validate_team_score_2() { FILE: solutions/12_options/options1.rs function maybe_ice_cream (line 5) | fn maybe_ice_cream(hour_of_day: u16) -> Option { function main (line 13) | fn main() { function raw_value (line 22) | fn raw_value() { function check_ice_cream (line 30) | fn check_ice_cream() { FILE: solutions/12_options/options2.rs function main (line 1) | fn main() { function simple_option (line 8) | fn simple_option() { function layered_option (line 19) | fn layered_option() { FILE: solutions/12_options/options3.rs type Point (line 2) | struct Point { function main (line 7) | fn main() { FILE: solutions/13_error_handling/errors1.rs function generate_nametag_text (line 1) | fn generate_nametag_text(name: String) -> Result { function main (line 12) | fn main() { function generates_nametag_text_for_a_nonempty_name (line 21) | fn generates_nametag_text_for_a_nonempty_name() { function explains_why_generating_nametag_text_fails (line 29) | fn explains_why_generating_nametag_text_fails() { FILE: solutions/13_error_handling/errors2.rs function total_cost (line 20) | fn total_cost(item_quantity: &str) -> Result { function main (line 37) | fn main() { function item_quantity_is_a_valid_number (line 47) | fn item_quantity_is_a_valid_number() { function item_quantity_is_an_invalid_number (line 52) | fn item_quantity_is_an_invalid_number() { FILE: solutions/13_error_handling/errors3.rs function total_cost (line 8) | fn total_cost(item_quantity: &str) -> Result { function main (line 16) | fn main() -> Result<(), ParseIntError> { FILE: solutions/13_error_handling/errors4.rs type CreationError (line 4) | enum CreationError { type PositiveNonzeroInteger (line 10) | struct PositiveNonzeroInteger(u64); method new (line 13) | fn new(value: i64) -> Result { function main (line 22) | fn main() { function test_creation (line 31) | fn test_creation() { FILE: solutions/13_error_handling/errors5.rs type CreationError (line 18) | enum CreationError { method fmt (line 25) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type PositiveNonzeroInteger (line 37) | struct PositiveNonzeroInteger(u64); method new (line 40) | fn new(value: i64) -> Result { function main (line 49) | fn main() -> Result<(), Box> { FILE: solutions/13_error_handling/errors6.rs type CreationError (line 10) | enum CreationError { type ParsePosNonzeroError (line 17) | enum ParsePosNonzeroError { method from_creation (line 23) | fn from_creation(err: CreationError) -> Self { method from_parse_int (line 27) | fn from_parse_int(err: ParseIntError) -> Self { method from (line 42) | fn from(err: ParseIntError) -> Self { type PositiveNonzeroInteger (line 48) | struct PositiveNonzeroInteger(u64); method new (line 51) | fn new(value: i64) -> Result { method parse (line 59) | fn parse(s: &str) -> Result { function main (line 68) | fn main() { function test_parse_error (line 77) | fn test_parse_error() { function test_negative (line 85) | fn test_negative() { function test_zero (line 93) | fn test_zero() { function test_positive (line 101) | fn test_positive() { FILE: solutions/14_generics/generics1.rs function main (line 5) | fn main() { FILE: solutions/14_generics/generics2.rs type Wrapper (line 1) | struct Wrapper { function new (line 6) | fn new(value: T) -> Self { function main (line 11) | fn main() { function store_u32_in_wrapper (line 20) | fn store_u32_in_wrapper() { function store_str_in_wrapper (line 25) | fn store_str_in_wrapper() { FILE: solutions/15_traits/traits1.rs type AppendBar (line 3) | trait AppendBar { method append_bar (line 4) | fn append_bar(self) -> Self; method append_bar (line 8) | fn append_bar(self) -> Self { function main (line 13) | fn main() { function is_foo_bar (line 24) | fn is_foo_bar() { function is_bar_bar (line 29) | fn is_bar_bar() { FILE: solutions/15_traits/traits2.rs type AppendBar (line 1) | trait AppendBar { method append_bar (line 2) | fn append_bar(self) -> Self; method append_bar (line 6) | fn append_bar(mut self) -> Self { function main (line 13) | fn main() { function is_vec_pop_eq_bar (line 22) | fn is_vec_pop_eq_bar() { FILE: solutions/15_traits/traits3.rs type Licensed (line 1) | trait Licensed { method licensing_info (line 2) | fn licensing_info(&self) -> String { type SomeSoftware (line 7) | struct SomeSoftware { type OtherSoftware (line 11) | struct OtherSoftware { function main (line 18) | fn main() { function is_licensing_info_the_same (line 27) | fn is_licensing_info_the_same() { FILE: solutions/15_traits/traits4.rs type Licensed (line 1) | trait Licensed { method licensing_info (line 2) | fn licensing_info(&self) -> String { type SomeSoftware (line 7) | struct SomeSoftware; type OtherSoftware (line 8) | struct OtherSoftware; function compare_license_types (line 13) | fn compare_license_types(software1: impl Licensed, software2: impl Licen... function main (line 18) | fn main() { function compare_license_information (line 27) | fn compare_license_information() { function compare_license_information_backwards (line 32) | fn compare_license_information_backwards() { FILE: solutions/15_traits/traits5.rs type SomeTrait (line 1) | trait SomeTrait { method some_function (line 2) | fn some_function(&self) -> bool { type OtherTrait (line 7) | trait OtherTrait { method other_function (line 8) | fn other_function(&self) -> bool { type SomeStruct (line 13) | struct SomeStruct; type OtherStruct (line 17) | struct OtherStruct; function some_func (line 21) | fn some_func(item: impl SomeTrait + OtherTrait) -> bool { function main (line 26) | fn main() { function test_some_func (line 35) | fn test_some_func() { FILE: solutions/16_lifetimes/lifetimes1.rs function longest (line 6) | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { function main (line 11) | fn main() { function test_longest (line 20) | fn test_longest() { FILE: solutions/16_lifetimes/lifetimes2.rs function longest (line 1) | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { function main (line 5) | fn main() { FILE: solutions/16_lifetimes/lifetimes3.rs type Book (line 3) | struct Book<'a> { function main (line 11) | fn main() { FILE: solutions/17_tests/tests1.rs function is_even (line 4) | fn is_even(n: i64) -> bool { function main (line 8) | fn main() { function you_can_assert (line 19) | fn you_can_assert() { FILE: solutions/17_tests/tests2.rs function power_of_2 (line 3) | fn power_of_2(n: u8) -> u64 { function main (line 7) | fn main() { function you_can_assert_eq (line 16) | fn you_can_assert_eq() { FILE: solutions/17_tests/tests3.rs type Rectangle (line 1) | struct Rectangle { method new (line 8) | fn new(width: i32, height: i32) -> Self { function main (line 19) | fn main() { function correct_width_and_height (line 28) | fn correct_width_and_height() { function negative_width (line 36) | fn negative_width() { function negative_height (line 42) | fn negative_height() { FILE: solutions/18_iterators/iterators1.rs function main (line 5) | fn main() { function iterators (line 12) | fn iterators() { FILE: solutions/18_iterators/iterators2.rs function capitalize_first (line 5) | fn capitalize_first(input: &str) -> String { function capitalize_words_vector (line 16) | fn capitalize_words_vector(words: &[&str]) -> Vec { function capitalize_words_string (line 23) | fn capitalize_words_string(words: &[&str]) -> String { function main (line 27) | fn main() { function test_success (line 36) | fn test_success() { function test_empty (line 41) | fn test_empty() { function test_iterate_string_vec (line 46) | fn test_iterate_string_vec() { function test_iterate_into_string (line 52) | fn test_iterate_into_string() { FILE: solutions/18_iterators/iterators3.rs type DivisionError (line 2) | enum DivisionError { function divide (line 11) | fn divide(a: i64, b: i64) -> Result { function result_with_list (line 27) | fn result_with_list() -> Result, DivisionError> { function list_of_results (line 36) | fn list_of_results() -> Vec> { function main (line 44) | fn main() { function test_success (line 53) | fn test_success() { function test_divide_by_0 (line 60) | fn test_divide_by_0() { function test_integer_overflow (line 65) | fn test_integer_overflow() { function test_not_divisible (line 70) | fn test_not_divisible() { function test_divide_0_by_something (line 75) | fn test_divide_0_by_something() { function test_result_with_list (line 80) | fn test_result_with_list() { function test_list_of_results (line 85) | fn test_list_of_results() { FILE: solutions/18_iterators/iterators4.rs function factorial_for (line 4) | fn factorial_for(num: u64) -> u64 { function factorial_fold (line 16) | fn factorial_fold(num: u64) -> u64 { function factorial_product (line 34) | fn factorial_product(num: u64) -> u64 { function main (line 38) | fn main() { function factorial_of_0 (line 47) | fn factorial_of_0() { function factorial_of_1 (line 54) | fn factorial_of_1() { function factorial_of_2 (line 60) | fn factorial_of_2() { function factorial_of_4 (line 67) | fn factorial_of_4() { FILE: solutions/18_iterators/iterators5.rs type Progress (line 10) | enum Progress { function count_for (line 16) | fn count_for(map: &HashMap, value: Progress) -> usize { function count_iterator (line 26) | fn count_iterator(map: &HashMap, value: Progress) -> u... function count_collection_for (line 32) | fn count_collection_for(collection: &[HashMap], value:... function count_collection_iterator (line 40) | fn count_collection_iterator(collection: &[HashMap], v... function count_collection_iterator_flat (line 53) | fn count_collection_iterator_flat( function main (line 67) | fn main() { function get_map (line 76) | fn get_map() -> HashMap { function get_vec_map (line 88) | fn get_vec_map() -> Vec> { function count_complete (line 102) | fn count_complete() { function count_some (line 108) | fn count_some() { function count_none (line 114) | fn count_none() { function count_complete_equals_for (line 120) | fn count_complete_equals_for() { function count_collection_complete (line 132) | fn count_collection_complete() { function count_collection_some (line 139) | fn count_collection_some() { function count_collection_none (line 146) | fn count_collection_none() { function count_collection_equals_for (line 153) | fn count_collection_equals_for() { FILE: solutions/19_smart_pointers/arc1.rs function main (line 22) | fn main() { FILE: solutions/19_smart_pointers/box1.rs type List (line 13) | enum List { function create_empty_list (line 18) | fn create_empty_list() -> List { function create_non_empty_list (line 22) | fn create_non_empty_list() -> List { function main (line 26) | fn main() { function test_create_empty_list (line 39) | fn test_create_empty_list() { function test_create_non_empty_list (line 44) | fn test_create_non_empty_list() { FILE: solutions/19_smart_pointers/cow1.rs function abs_all (line 8) | fn abs_all(input: &mut Cow<[i32]>) { function main (line 18) | fn main() { function reference_mutation (line 27) | fn reference_mutation() { function reference_no_mutation (line 36) | fn reference_no_mutation() { function owned_no_mutation (line 46) | fn owned_no_mutation() { function owned_mutation (line 59) | fn owned_mutation() { FILE: solutions/19_smart_pointers/rc1.rs type Sun (line 9) | struct Sun; type Planet (line 12) | enum Planet { method details (line 24) | fn details(&self) { function main (line 29) | fn main() { function rc1 (line 38) | fn rc1() { FILE: solutions/20_threads/threads1.rs function main (line 11) | fn main() { FILE: solutions/20_threads/threads2.rs type JobStatus (line 11) | struct JobStatus { function main (line 15) | fn main() { FILE: solutions/20_threads/threads3.rs type Queue (line 3) | struct Queue { method new (line 9) | fn new() -> Self { function send_tx (line 17) | fn send_tx(q: Queue, tx: mpsc::Sender) { function main (line 39) | fn main() { function threads3 (line 48) | fn threads3() { FILE: solutions/21_macros/macros1.rs function main (line 7) | fn main() { FILE: solutions/21_macros/macros2.rs function main (line 8) | fn main() { FILE: solutions/21_macros/macros3.rs function main (line 11) | fn main() { FILE: solutions/21_macros/macros4.rs function main (line 12) | fn main() { FILE: solutions/22_clippy/clippy1.rs function main (line 9) | fn main() { FILE: solutions/22_clippy/clippy2.rs function main (line 1) | fn main() { FILE: solutions/22_clippy/clippy3.rs function main (line 4) | fn main() { FILE: solutions/23_conversions/as_ref_mut.rs function byte_counter (line 7) | fn byte_counter>(arg: T) -> usize { function char_counter (line 12) | fn char_counter>(arg: T) -> usize { function num_sq (line 17) | fn num_sq>(arg: &mut T) { function main (line 22) | fn main() { function different_counts (line 31) | fn different_counts() { function same_counts (line 37) | fn same_counts() { function different_counts_using_string (line 43) | fn different_counts_using_string() { function same_counts_using_string (line 49) | fn same_counts_using_string() { function mut_box (line 55) | fn mut_box() { FILE: solutions/23_conversions/from_into.rs type Person (line 7) | struct Person { method from (line 24) | fn from(s: &str) -> Self { method default (line 15) | fn default() -> Self { function main (line 46) | fn main() { function test_default (line 61) | fn test_default() { function test_bad_convert (line 68) | fn test_bad_convert() { function test_good_convert (line 75) | fn test_good_convert() { function test_bad_age (line 82) | fn test_bad_age() { function test_missing_comma_and_age (line 89) | fn test_missing_comma_and_age() { function test_missing_age (line 96) | fn test_missing_age() { function test_missing_name (line 103) | fn test_missing_name() { function test_missing_name_and_age (line 110) | fn test_missing_name_and_age() { function test_missing_name_and_invalid_age (line 117) | fn test_missing_name_and_invalid_age() { function test_trailing_comma (line 124) | fn test_trailing_comma() { function test_trailing_comma_and_some_string (line 131) | fn test_trailing_comma_and_some_string() { FILE: solutions/23_conversions/from_str.rs type Person (line 12) | struct Person { type ParsePersonError (line 19) | enum ParsePersonError { type Err (line 29) | type Err = ParsePersonError; method from_str (line 31) | fn from_str(s: &str) -> Result { function main (line 51) | fn main() { function empty_input (line 62) | fn empty_input() { function good_input (line 67) | fn good_input() { function missing_age (line 76) | fn missing_age() { function invalid_age (line 81) | fn invalid_age() { function missing_comma_and_age (line 86) | fn missing_comma_and_age() { function missing_name (line 91) | fn missing_name() { function missing_name_and_age (line 96) | fn missing_name_and_age() { function missing_name_and_invalid_age (line 101) | fn missing_name_and_invalid_age() { function trailing_comma (line 109) | fn trailing_comma() { function trailing_comma_and_some_string (line 114) | fn trailing_comma_and_some_string() { FILE: solutions/23_conversions/try_from_into.rs type Color (line 11) | struct Color { type Error (line 27) | type Error = IntoColorError; method try_from (line 29) | fn try_from(tuple: (i16, i16, i16)) -> Result { type Error (line 43) | type Error = IntoColorError; method try_from (line 45) | fn try_from(arr: [i16; 3]) -> Result { type Error (line 52) | type Error = IntoColorError; method try_from (line 54) | fn try_from(slice: &[i16]) -> Result { type IntoColorError (line 19) | enum IntoColorError { function main (line 65) | fn main() { function test_tuple_out_of_range_positive (line 89) | fn test_tuple_out_of_range_positive() { function test_tuple_out_of_range_negative (line 94) | fn test_tuple_out_of_range_negative() { function test_tuple_sum (line 99) | fn test_tuple_sum() { function test_tuple_correct (line 104) | fn test_tuple_correct() { function test_array_out_of_range_positive (line 118) | fn test_array_out_of_range_positive() { function test_array_out_of_range_negative (line 124) | fn test_array_out_of_range_negative() { function test_array_sum (line 130) | fn test_array_sum() { function test_array_correct (line 136) | fn test_array_correct() { function test_slice_out_of_range_positive (line 150) | fn test_slice_out_of_range_positive() { function test_slice_out_of_range_negative (line 156) | fn test_slice_out_of_range_negative() { function test_slice_sum (line 162) | fn test_slice_sum() { function test_slice_correct (line 168) | fn test_slice_correct() { function test_slice_excess_length (line 183) | fn test_slice_excess_length() { function test_slice_insufficient_length (line 189) | fn test_slice_insufficient_length() { FILE: solutions/23_conversions/using_as.rs function average (line 5) | fn average(values: &[f64]) -> f64 { function main (line 11) | fn main() { function returns_proper_type_and_value (line 21) | fn returns_proper_type_and_value() { FILE: solutions/quizzes/quiz1.rs function calculate_price_of_apples (line 6) | fn calculate_price_of_apples(n_apples: u64) -> u64 { function main (line 14) | fn main() { function verify_test (line 24) | fn verify_test() { FILE: solutions/quizzes/quiz2.rs type Command (line 13) | enum Command { function transformer (line 24) | pub fn transformer(input: Vec<(String, Command)>) -> Vec { function transformer_iter (line 44) | pub fn transformer_iter(input: Vec<(String, Command)>) -> Vec { function main (line 56) | fn main() { function it_works (line 69) | fn it_works() { FILE: solutions/quizzes/quiz3.rs type ReportCard (line 13) | struct ReportCard { function print (line 24) | fn print(&self) -> String { function main (line 32) | fn main() { function generate_numeric_report_card (line 41) | fn generate_numeric_report_card() { function generate_alphabetic_report_card (line 54) | fn generate_alphabetic_report_card() { FILE: src/app_state.rs constant STATE_FILE_NAME (line 26) | const STATE_FILE_NAME: &str = ".rustlings-state.txt"; constant DEFAULT_CHECK_PARALLELISM (line 27) | const DEFAULT_CHECK_PARALLELISM: usize = 8; type ExercisesProgress (line 30) | pub enum ExercisesProgress { type StateFileStatus (line 39) | pub enum StateFileStatus { type CheckProgress (line 45) | pub enum CheckProgress { type AppState (line 52) | pub struct AppState { method new (line 67) | pub fn new( method current_exercise_ind (line 184) | pub fn current_exercise_ind(&self) -> usize { method exercises (line 189) | pub fn exercises(&self) -> &[Exercise] { method n_done (line 194) | pub fn n_done(&self) -> u32 { method n_pending (line 199) | pub fn n_pending(&self) -> u32 { method current_exercise (line 204) | pub fn current_exercise(&self) -> &Exercise { method cmd_runner (line 209) | pub fn cmd_runner(&self) -> &CmdRunner { method emit_file_links (line 214) | pub fn emit_file_links(&self) -> bool { method write (line 226) | fn write(&mut self) -> Result<()> { method set_current_exercise_ind (line 253) | pub fn set_current_exercise_ind(&mut self, exercise_ind: usize) -> Res... method set_current_exercise_by_name (line 267) | pub fn set_current_exercise_by_name(&mut self, name: &str) -> Result<(... method set_status (line 281) | pub fn set_status(&mut self, exercise_ind: usize, done: bool) -> Resul... method set_pending (line 302) | pub fn set_pending(&mut self, exercise_ind: usize) -> Result<()> { method reset (line 312) | fn reset(&self, exercise_ind: usize, path: &str) -> Result<()> { method reset_current_exercise (line 339) | pub fn reset_current_exercise(&mut self) -> Result<&str> { method reset_exercise_by_ind (line 348) | pub fn reset_exercise_by_ind(&mut self, exercise_ind: usize) -> Result... method next_pending_exercise_ind (line 361) | fn next_pending_exercise_ind(&self) -> Option { method current_solution_path (line 382) | pub fn current_solution_path(&self) -> Result> { method check_all_exercises_impl (line 404) | fn check_all_exercises_impl(&mut self, stdout: &mut StdoutLock) -> Res... method check_all_exercises (line 508) | pub fn check_all_exercises(&mut self, stdout: &mut StdoutLock) -> Resu... method done_current_exercise (line 519) | pub fn done_current_exercise( method render_final_message (line 551) | pub fn render_final_message(&self, stdout: &mut StdoutLock) -> Result<... constant BAD_INDEX_ERR (line 565) | const BAD_INDEX_ERR: &str = "The current exercise index is higher than t... constant STATE_FILE_HEADER (line 566) | const STATE_FILE_HEADER: &[u8] = b"DON'T EDIT THIS FILE!\n\n"; constant FENISH_LINE (line 567) | const FENISH_LINE: &str = "+--------------------------------------------... function dummy_exercise (line 593) | fn dummy_exercise() -> Exercise { function next_pending_exercise (line 607) | fn next_pending_exercise() { FILE: src/cargo_toml.rs constant BINS_BUFFER_CAPACITY (line 7) | pub const BINS_BUFFER_CAPACITY: usize = 1 << 14; function bins_start_end_ind (line 13) | pub fn bins_start_end_ind(cargo_toml: &str) -> Result<(usize, usize)> { function append_bins (line 29) | pub fn append_bins( function updated_cargo_toml (line 69) | pub fn updated_cargo_toml( function test_bins_start_end_ind (line 93) | fn test_bins_start_end_ind() { function test_bins (line 106) | fn test_bins() { FILE: src/cmd.rs function run_cmd (line 11) | fn run_cmd(mut cmd: Command, description: &str, output: Option<&mut Vec<... type CargoMetadata (line 51) | struct CargoMetadata { type CmdRunner (line 55) | pub struct CmdRunner { method build (line 60) | pub fn build() -> Result { method cargo (line 87) | pub fn cargo<'out>( method run_debug_bin (line 111) | pub fn run_debug_bin(&self, bin_name: &str, output: Option<&mut Vec { function args (line 130) | pub fn args<'arg, I>(&mut self, args: I) -> &mut Self function run (line 140) | pub fn run(self, description: &str) -> Result { constant CARGO_METADATA_ERR (line 145) | const CARGO_METADATA_ERR: &str = "Failed to run the command `cargo metad... function test_run_cmd (line 154) | fn test_run_cmd() { FILE: src/dev.rs type DevCommands (line 10) | pub enum DevCommands { method run (line 30) | pub fn run(self) -> Result<()> { constant INIT_ERR (line 45) | const INIT_ERR: &str = "Initialization failed. FILE: src/dev/check.rs constant MAX_N_EXERCISES (line 21) | const MAX_N_EXERCISES: usize = 999; constant MAX_EXERCISE_NAME_LEN (line 22) | const MAX_EXERCISE_NAME_LEN: usize = 32; function forbidden_char (line 25) | fn forbidden_char(input: &str) -> Option { function check_cargo_toml (line 30) | fn check_cargo_toml( function check_info_file_exercises (line 60) | fn check_info_file_exercises(info_file: &InfoFile) -> Result Result<()> { constant SKIP_CHECK_UNSOLVED_HINT (line 398) | const SKIP_CHECK_UNSOLVED_HINT: &str = "If this is an introduction exerc... FILE: src/dev/new.rs function create_rel_dir (line 12) | fn create_rel_dir(dir_name: &str, current_dir: &str) -> Result<()> { function write_rel_file (line 20) | fn write_rel_file(file_name: &str, current_dir: &str, content: C) -> ... function new (line 31) | pub fn new(path: &Path, no_git: bool) -> Result<()> { constant GITIGNORE (line 81) | pub const GITIGNORE: &[u8] = b"Cargo.lock constant INFO_FILE_BEFORE_FORMAT_VERSION (line 87) | const INFO_FILE_BEFORE_FORMAT_VERSION: &str = constant INFO_FILE_AFTER_FORMAT_VERSION (line 96) | const INFO_FILE_AFTER_FORMAT_VERSION: &str = r#" constant CARGO_TOML (line 128) | const CARGO_TOML: &[u8] = constant README (line 141) | const README: &str = "# Rustlings 🦀 FILE: src/dev/update.rs function update_cargo_toml (line 10) | fn update_cargo_toml( function update (line 27) | pub fn update() -> Result<()> { FILE: src/embedded.rs type ExerciseFiles (line 13) | struct ExerciseFiles { function create_dir_if_not_exists (line 22) | fn create_dir_if_not_exists(path: &str) -> Result<()> { type ExerciseDir (line 33) | pub struct ExerciseDir { method init_on_disk (line 39) | fn init_on_disk(&self) -> Result<()> { type EmbeddedFiles (line 56) | pub struct EmbeddedFiles { method init_exercises_dir (line 65) | pub fn init_exercises_dir(&self, exercise_infos: &[ExerciseInfo]) -> R... method write_exercise_to_disk (line 98) | pub fn write_exercise_to_disk(&self, exercise_ind: usize, path: &str) ... method write_solution_to_disk (line 108) | pub fn write_solution_to_disk( type ExerciseInfo (line 144) | struct ExerciseInfo<'a> { type InfoFile (line 149) | struct InfoFile<'a> { function dirs (line 155) | fn dirs() { FILE: src/exercise.rs constant OUTPUT_CAPACITY (line 14) | pub const OUTPUT_CAPACITY: usize = 1 << 14; function solution_link_line (line 16) | pub fn solution_link_line( function run_bin (line 37) | fn run_bin( type Exercise (line 68) | pub struct Exercise { method terminal_file_link (line 81) | pub fn terminal_file_link<'a>( type RunnableExercise (line 96) | pub trait RunnableExercise { method name (line 97) | fn name(&self) -> &str; method dir (line 98) | fn dir(&self) -> Option<&str>; method strict_clippy (line 99) | fn strict_clippy(&self) -> bool; method test (line 100) | fn test(&self) -> bool; method run (line 104) | fn run( method run_exercise (line 162) | fn run_exercise(&self, output: Option<&mut Vec>, cmd_runner: &CmdR... method run_solution (line 168) | fn run_solution(&self, output: Option<&mut Vec>, cmd_runner: &CmdR... method sol_path (line 177) | fn sol_path(&self) -> String { method name (line 205) | fn name(&self) -> &str { method dir (line 210) | fn dir(&self) -> Option<&str> { method strict_clippy (line 215) | fn strict_clippy(&self) -> bool { method test (line 220) | fn test(&self) -> bool { FILE: src/info_file.rs type ExerciseInfo (line 9) | pub struct ExerciseInfo { method path (line 33) | pub fn path(&self) -> String { function default_true (line 27) | const fn default_true() -> bool { method name (line 59) | fn name(&self) -> &str { method dir (line 64) | fn dir(&self) -> Option<&str> { method strict_clippy (line 69) | fn strict_clippy(&self) -> bool { method test (line 74) | fn test(&self) -> bool { type InfoFile (line 81) | pub struct InfoFile { method parse (line 95) | pub fn parse() -> Result { constant NO_EXERCISES_ERR (line 126) | const NO_EXERCISES_ERR: &str = "There are no exercises yet! FILE: src/init.rs type CargoLocateProject (line 21) | struct CargoLocateProject<'a> { function init (line 26) | pub fn init() -> Result<()> { constant INIT_SOLUTION_FILE (line 207) | const INIT_SOLUTION_FILE: &[u8] = b"fn main() { constant RUST_ANALYZER_TOML (line 213) | pub const RUST_ANALYZER_TOML: &[u8] = br#"check.command = "clippy" constant GITIGNORE (line 218) | const GITIGNORE: &[u8] = b"Cargo.lock constant VS_CODE_EXTENSIONS_JSON (line 223) | pub const VS_CODE_EXTENSIONS_JSON: &[u8] = br#"{"recommendations":["rust... constant IN_INITIALIZED_DIR_ERR (line 225) | const IN_INITIALIZED_DIR_ERR: &str = "It looks like Rustlings is already... constant RUSTLINGS_DIR_ALREADY_EXISTS_ERR (line 230) | const RUSTLINGS_DIR_ALREADY_EXISTS_ERR: &str = constant POST_INIT_MSG (line 236) | const POST_INIT_MSG: &[u8] = b"Run `cd rustlings` to go into the generat... FILE: src/list.rs function handle_list (line 21) | fn handle_list(app_state: &mut AppState, stdout: &mut StdoutLock) -> Res... function list (line 113) | pub fn list(app_state: &mut AppState) -> Result<()> { FILE: src/list/scroll_state.rs type ScrollState (line 1) | pub struct ScrollState { method new (line 11) | pub fn new(n_rows: usize, selected: Option, max_scroll_padding:... method offset (line 23) | pub fn offset(&self) -> usize { method update_offset (line 27) | fn update_offset(&mut self) { method selected (line 45) | pub fn selected(&self) -> Option { method set_selected (line 49) | pub fn set_selected(&mut self, selected: usize) { method select_next (line 54) | pub fn select_next(&mut self) { method select_previous (line 60) | pub fn select_previous(&mut self) { method select_first (line 66) | pub fn select_first(&mut self) { method select_last (line 72) | pub fn select_last(&mut self) { method set_n_rows (line 78) | pub fn set_n_rows(&mut self, n_rows: usize) { method update_scroll_padding (line 90) | fn update_scroll_padding(&mut self) { method max_n_rows_to_display (line 95) | pub fn max_n_rows_to_display(&self) -> usize { method set_max_n_rows_to_display (line 99) | pub fn set_max_n_rows_to_display(&mut self, max_n_rows_to_display: usi... FILE: src/list/state.rs constant COL_SPACING (line 23) | const COL_SPACING: usize = 2; constant SELECTED_ROW_ATTRIBUTES (line 24) | const SELECTED_ROW_ATTRIBUTES: Attributes = Attributes::none() function next_ln (line 28) | fn next_ln(stdout: &mut StdoutLock) -> io::Result<()> { type Filter (line 36) | pub enum Filter { type ListState (line 42) | pub struct ListState<'a> { function build (line 57) | pub fn build(app_state: &'a mut AppState, stdout: &mut StdoutLock) -> Re... function set_term_size (line 101) | pub fn set_term_size(&mut self, width: u16, height: u16) { function draw_exercise_name (line 120) | fn draw_exercise_name(&self, writer: &mut MaxLenWriter, exercise: &Exerc... function draw_rows (line 141) | fn draw_rows( function draw (line 200) | pub fn draw(&mut self, stdout: &mut StdoutLock) -> io::Result<()> { function update_rows (line 287) | fn update_rows(&mut self) { function filter (line 308) | pub fn filter(&self) -> Filter { function set_filter (line 312) | pub fn set_filter(&mut self, filter: Filter) { function select_next (line 318) | pub fn select_next(&mut self) { function select_previous (line 323) | pub fn select_previous(&mut self) { function select_first (line 328) | pub fn select_first(&mut self) { function select_last (line 333) | pub fn select_last(&mut self) { function selected_to_exercise_ind (line 337) | fn selected_to_exercise_ind(&self, selected: usize) -> Result { function reset_selected (line 361) | pub fn reset_selected(&mut self) -> Result<()> { function apply_search_query (line 378) | pub fn apply_search_query(&mut self) { function selected_to_current_exercise (line 406) | pub fn selected_to_current_exercise(&mut self) -> Result { FILE: src/main.rs constant CURRENT_FORMAT_VERSION (line 26) | const CURRENT_FORMAT_VERSION: u8 = 1; type Args (line 31) | struct Args { type Subcommands (line 41) | enum Subcommands { function main (line 66) | fn main() -> Result { constant OLD_METHOD_ERR (line 196) | const OLD_METHOD_ERR: &str = constant FORMAT_VERSION_HIGHER_ERR (line 202) | const FORMAT_VERSION_HIGHER_ERR: &str = constant PRE_INIT_MSG (line 207) | const PRE_INIT_MSG: &str = r" FILE: src/run.rs function run (line 16) | pub fn run(app_state: &mut AppState) -> Result { FILE: src/term.rs type MaxLenWriter (line 14) | pub struct MaxLenWriter<'a, 'lock> { function new (line 22) | pub fn new(stdout: &'a mut StdoutLock<'lock>, max_len: usize) -> Self { function add_to_len (line 32) | pub fn add_to_len(&mut self, additional: usize) { type CountedWrite (line 37) | pub trait CountedWrite<'lock> { method write_ascii (line 38) | fn write_ascii(&mut self, ascii: &[u8]) -> io::Result<()>; method write_str (line 39) | fn write_str(&mut self, unicode: &str) -> io::Result<()>; method stdout (line 40) | fn stdout(&mut self) -> &mut StdoutLock<'lock>; function write_ascii (line 44) | fn write_ascii(&mut self, ascii: &[u8]) -> io::Result<()> { function write_str (line 53) | fn write_str(&mut self, unicode: &str) -> io::Result<()> { function stdout (line 68) | fn stdout(&mut self) -> &mut StdoutLock<'lock> { function write_ascii (line 75) | fn write_ascii(&mut self, ascii: &[u8]) -> io::Result<()> { function write_str (line 80) | fn write_str(&mut self, unicode: &str) -> io::Result<()> { function stdout (line 85) | fn stdout(&mut self) -> &mut StdoutLock<'a> { type CheckProgressVisualizer (line 90) | pub struct CheckProgressVisualizer<'a, 'lock> { constant CHECKING_COLOR (line 96) | const CHECKING_COLOR: Color = Color::Blue; constant DONE_COLOR (line 97) | const DONE_COLOR: Color = Color::Green; constant PENDING_COLOR (line 98) | const PENDING_COLOR: Color = Color::Red; function build (line 100) | pub fn build(stdout: &'a mut StdoutLock<'lock>, term_width: u16) -> io::... function update (line 126) | pub fn update(&mut self, progresses: &[CheckProgress]) -> io::Result<()> { type ProgressCounter (line 163) | pub struct ProgressCounter<'a, 'lock> { function new (line 170) | pub fn new(stdout: &'a mut StdoutLock<'lock>, total: usize) -> io::Resul... function increment (line 181) | pub fn increment(&mut self) -> io::Result<()> { method drop (line 189) | fn drop(&mut self) { function progress_bar (line 194) | pub fn progress_bar<'a>( function clear_terminal (line 244) | pub fn clear_terminal(stdout: &mut StdoutLock) -> io::Result<()> { function press_enter_prompt (line 252) | pub fn press_enter_prompt(stdout: &mut StdoutLock) -> io::Result<()> { function canonicalize (line 259) | pub fn canonicalize(path: &str) -> Option { function file_path (line 275) | pub fn file_path<'a, W: CountedWrite<'a>>( function terminal_file_link (line 295) | pub fn terminal_file_link<'a>( function write_ansi (line 308) | pub fn write_ansi(output: &mut Vec, command: impl Command) { FILE: src/watch.rs type InputPauseGuard (line 28) | pub struct InputPauseGuard(()); method scoped_pause (line 32) | pub fn scoped_pause() -> Self { method drop (line 40) | fn drop(&mut self) { type WatchEvent (line 45) | enum WatchEvent { type WatchExit (line 55) | enum WatchExit { function run_watch (line 62) | fn run_watch( function watch_list_loop (line 136) | fn watch_list_loop( function watch (line 152) | pub fn watch( constant QUIT_MSG (line 178) | const QUIT_MSG: &[u8] = b" constant NOTIFY_ERR (line 184) | const NOTIFY_ERR: &str = " FILE: src/watch/notify_event.rs constant DEBOUNCE_DURATION (line 17) | const DEBOUNCE_DURATION: Duration = Duration::from_millis(200); type NotifyEventHandler (line 19) | pub struct NotifyEventHandler { method build (line 28) | pub fn build( method handle_event (line 72) | fn handle_event(&mut self, input_event: notify::Result) { FILE: src/watch/state.rs constant HEADING_ATTRIBUTES (line 24) | const HEADING_ATTRIBUTES: Attributes = Attributes::none() type DoneStatus (line 29) | enum DoneStatus { type WatchState (line 35) | pub struct WatchState<'a> { function build (line 46) | pub fn build( function run_current_exercise (line 78) | pub fn run_current_exercise(&mut self, stdout: &mut StdoutLock) -> Resul... function reset_exercise (line 113) | pub fn reset_exercise(&mut self, stdout: &mut StdoutLock) -> Result<()> { function handle_file_change (line 151) | pub fn handle_file_change( function next_exercise (line 164) | pub fn next_exercise(&mut self, stdout: &mut StdoutLock) -> Result io::Result<()> { function render (line 208) | pub fn render(&self, stdout: &mut StdoutLock) -> io::Result<()> { function show_hint (line 263) | pub fn show_hint(&mut self, stdout: &mut StdoutLock) -> io::Result<()> { function check_all_exercises (line 272) | pub fn check_all_exercises(&mut self, stdout: &mut StdoutLock) -> Result... function update_term_width (line 291) | pub fn update_term_width(&mut self, width: u16, stdout: &mut StdoutLock)... FILE: src/watch/terminal_event.rs type InputEvent (line 9) | pub enum InputEvent { function terminal_event_handler (line 19) | pub fn terminal_event_handler( FILE: tests/integration_tests.rs type Output (line 6) | enum Output<'a> { type Cmd (line 15) | struct Cmd<'a> { function current_dir (line 23) | fn current_dir(&mut self, current_dir: &'a str) -> &mut Self { function args (line 29) | fn args(&mut self, args: &'a [&'a str]) -> &mut Self { function output (line 35) | fn output(&mut self, output: Output<'a>) -> &mut Self { function assert (line 41) | fn assert(&self, success: bool) { function success (line 75) | fn success(&self) { function fail (line 81) | fn fail(&self) { function run_compilation_success (line 87) | fn run_compilation_success() { function run_compilation_failure (line 95) | fn run_compilation_failure() { function run_test_success (line 103) | fn run_test_success() { function run_test_failure (line 112) | fn run_test_failure() { function run_exercise_not_in_info (line 120) | fn run_exercise_not_in_info() { function reset_without_exercise_name (line 128) | fn reset_without_exercise_name() { function hint (line 133) | fn hint() { function init (line 142) | fn init() { FILE: tests/test_exercises/exercises/compilation_failure.rs function main (line 1) | fn main() { FILE: tests/test_exercises/exercises/compilation_success.rs function main (line 1) | fn main() {} FILE: tests/test_exercises/exercises/not_in_info.rs function main (line 1) | fn main() {} FILE: tests/test_exercises/exercises/test_failure.rs function main (line 1) | fn main() {} function fails (line 6) | fn fails() { FILE: tests/test_exercises/exercises/test_success.rs function main (line 1) | fn main() { function passes (line 8) | fn passes() {}