diff options
Diffstat (limited to 'exercises/quiz2.rs')
| -rw-r--r-- | exercises/quiz2.rs | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/exercises/quiz2.rs b/exercises/quiz2.rs deleted file mode 100644 index 0a29e78..0000000 --- a/exercises/quiz2.rs +++ /dev/null @@ -1,62 +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 a 2-length tuple, -// the first element is the string, the second one is the command. -// - The output element is going to be a Vector of strings. - -pub enum Command { - Uppercase, - Trim, - Append(usize), -} - -mod my_module { - use super::Command; - - // TODO: Complete the function signature! - pub fn transformer(input: ???) -> ??? { - // TODO: Complete the output declaration! - let mut output: ??? = vec![]; - for (string, command) in input.iter() { - // TODO: Complete the function body. You can do it! - } - output - } -} - -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; - - #[test] - fn it_works() { - let output = transformer(vec![ - ("hello".into(), Command::Uppercase), - (" all roads lead to rome! ".into(), Command::Trim), - ("foo".into(), Command::Append(1)), - ("bar".into(), Command::Append(5)), - ]); - assert_eq!(output[0], "HELLO"); - assert_eq!(output[1], "all roads lead to rome!"); - assert_eq!(output[2], "foobar"); - assert_eq!(output[3], "barbarbarbarbarbar"); - } -} |
