You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
miguel 166a10990f fix(piscine-rust): add crates to exercises 1 year ago
..
README.md chore(dress_code): prettier 2 years ago
main.rs fix(piscine-rust): add crates to exercises 1 year ago

README.md

dress_code

Instructions

Create a function called choose_outfit that receives the following input:

  • A formality_level as an Option<u32>.
  • An invitation_message as a Result<&str>.

The function will return a struct Outfit which contains:

  • jacket, an enum Jacket that contains Black, White and Flowers.
  • hat, an enum Hat that contains Snapback, Baseball, Fedora.
#[derive(Debug, PartialEq, Eq)]
pub struct Outfit {
    pub jacket: Jacket,
    pub hat: Hat,
}

For the jacket:

  • The jacket should be Flowers when the formality_level is unset.
  • The jacket should be White when the formality_level is more than 0.
  • Otherwise, it should be Black.

For the hat:

  • If the invitation_message is Ok() it should be Fedora.
  • Otherwise, it should be Snapback.

In the specific case where formality_level is None and invitation_message is not Ok() then the jacket should be Flowers and the hat should be Baseball.

Remember that all the enum and struct used must be pub.

Expected functions

pub fn choose_outfit(formality_level: Option<u32>, invitation_message: Result<&str, &str>) -> Outfit {}

Usage

Here is a program to test your function.

use dress_code::*;

fn main() {
    println!("My outfit will be: {:?}", choose_outfit(Some(0), Ok("Dear friend, ...")));
}

And its output:

$ cargo run
My outfit will be: Outfit { jacket: Black, hat: Fedora }
$

Notions