Fizzbuzz
The following example implements the fizzbuzz game.
The rules are:
- A number divisible by 3returnsFizz
- A number divisible by 5returnsBuzz
- A number which is divisible by 3&5returnsFizzbuzz
- Any other number entered is returned back to the user
State
Let's define an enum which contains the state of the game.
enum State {
    Fizz: (),
    Buzz: (),
    FizzBuzz: (),
    Other: u64,
}
Implementation
We can write a function which takes an input and checks its divisibility. Depending on the result a different State will be returned.
fn fizzbuzz(input: u64) -> State {
    if input % 15 == 0 {
        State::FizzBuzz
    } else if input % 3 == 0 {
        State::Fizz
    } else if input % 5 == 0 {
        State::Buzz
    } else {
        State::Other(input)
    }
}