diff options
| author | Hunter Kvalevog <hunter@kvog.sh> | 2026-10-02 21:53:51 -0500 |
|---|---|---|
| committer | Hunter Kvalevog <hunter@kvog.sh> | 2026-10-02 21:53:51 -0500 |
| commit | 4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 (patch) | |
| tree | 17ba62056d6b691dd0217b0e8f1b3a5826dce0f6 /rustlings/exercises/quizzes/quiz2.rs | |
| parent | 02d8f1c62896576e1266553a56980eddbc2a88d7 (diff) | |
rustlings: move to rust/
Diffstat (limited to 'rustlings/exercises/quizzes/quiz2.rs')
| -rw-r--r-- | rustlings/exercises/quizzes/quiz2.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/rustlings/exercises/quizzes/quiz2.rs b/rustlings/exercises/quizzes/quiz2.rs deleted file mode 100644 index fd32810..0000000 --- a/rustlings/exercises/quizzes/quiz2.rs +++ /dev/null @@ -1,81 +0,0 @@ -// This is a quiz for the following sections: -// - Strings -// - Vecs -// - Move semantics -// - Modules -// - Enums -// -// Let's build a little machine in the form of a function. As input, we're going -// to give a list of strings and commands. These commands determine what action -// is going to be applied to the string. It can either be: -// - Uppercase the string -// - Trim the string -// - Append "bar" to the string a specified amount of times -// -// The exact form of this will be: -// - The input is going to be a Vector of 2-length tuples, -// the first element is the string, the second one is the command. -// - The output element is going to be a vector of strings. - -enum Command { - Uppercase, - Trim, - Append(usize), -} - -mod my_module { - use super::Command; - - // TODO: Complete the function as described above. - // pub fn transformer(input: ???) -> ??? { ??? } - pub fn transformer(input: Vec<(String, Command)>) -> Vec<String> { - let mut out = Vec::new(); - for inp in input { - out.push(match inp.1 { - Command::Uppercase => inp.0.to_uppercase(), - Command::Trim => String::from(inp.0.trim()), - Command::Append(n) => { - let mut r = inp.0; - for _ in 0..n { - r += "bar"; - } - r - } - }); - } - out - } -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - // TODO: What do we need to import to have `transformer` in scope? - // use ???; - use super::Command; - use super::my_module::transformer; - - #[test] - fn it_works() { - let input = vec![ - ("hello".to_string(), Command::Uppercase), - (" all roads lead to rome! ".to_string(), Command::Trim), - ("foo".to_string(), Command::Append(1)), - ("bar".to_string(), Command::Append(5)), - ]; - let output = transformer(input); - - assert_eq!( - output, - [ - "HELLO", - "all roads lead to rome!", - "foobar", - "barbarbarbarbarbar", - ] - ); - } -} |