1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
pub mod do_username { use rand::Rng; fn to_title_case(s: &str) -> String { let mut c = s.chars(); match c.next() { None => String::new(), Some(f) => f.to_uppercase().chain(c).collect(), } } fn random(arr: Vec<&str>) -> &str { let mut rng = rand::thread_rng(); let r = rng.gen_range(0, arr.len()); arr[r] } fn up_format(arr: Vec<&str>) -> String { let mut new_arr = vec![]; for elem in arr { new_arr.push(to_title_case(elem)) } new_arr.join("") } pub fn get() -> String { let sea_creatures = vec!["walrus", "seal", "fish", "shark", "clam", "coral", "whale", "crab", "lobster", "starfish", "eel", "dolphin", "squid", "jellyfish", "ray", "shrimp", "mantaRay", "angler", "snorkler", "scubaDiver", "urchin", "anemone", "morel", "axolotl"]; let sea_objects = vec!["boatShip", "submarine", "yacht", "dinghy", "raft", "kelp", "seaweed", "anchor"]; let adjectives = vec!["cute", "adorable", "lovable", "happy", "sandy", "bubbly", "friendly", "floating", "drifting"]; let mut size= vec!["large", "big", "small", "giant", "massive", "tiny", "little", "yuge"]; let mut verbs = vec!["swimming", "sleeping", "eating", "hiding"]; let colors = vec!["blue", "blueGreen", "darkCyan", "electricBlue", "greenBlue", "lightCyan", "lightSeaGreen", "seaGreen", "turquoise", "aqua", "aquamarine", "teal", "cyan", "gray", "darkBlue", "cerulean", "azure", "lapis", "navy"]; let mut sea_list = sea_objects; let mut descriptors = adjectives; sea_list.append(&mut sea_creatures.clone()); descriptors.append(&mut size); let mut descriptors_and_verbs = descriptors.clone(); descriptors_and_verbs.append(&mut verbs); let rand_noun = random(sea_list); let rand_color = random(colors); let rand_desc: &str; if sea_creatures.contains(&rand_noun) { rand_desc = random(descriptors_and_verbs); } else { rand_desc = random(descriptors); } if format!("{}{}{}", rand_desc, rand_color, rand_noun).len() <= 30 { return up_format(vec![rand_desc, rand_color, rand_noun]) } else if format!("{}{}", rand_desc, rand_noun).len() <= 30 { return up_format(vec![rand_desc, rand_noun]) } else if format!("{}{}", rand_color, rand_noun).len() <= 30 { return up_format(vec![rand_color, rand_noun]) } else { return up_format(vec![rand_noun]) } } }