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.
 
 
 
 
 
 
davhojt be3e57052a docs(macro_calculator): correct grammar 2 years ago
..
README.md docs(macro_calculator): correct grammar 2 years ago

README.md

macro_calculator

Instructions

Create a function named calculate_macros which receives a vector of Food structures and returns a json::JsonValue.

Food {
    name: <name>,
    calories: [<value_in_kJ>, <value_in_kcal>],
    fats: <fats_in_g>,
    carbs: <carbs_in_g>,
    proteins: <proteins_in_g>,
    nbr_of_portions: <portions>
}

The values in the calories array will be of type string, all other values will be f64.

The json returned by calculate_macros will have the following format:

"cals": <calories>,
"carbs": <carbs>,
"proteins": <proteins>,
"fats": <fats>,

Consider the number of portions, as the values of the macros refer to one portion. Each value should represent the sum of each micro-nutrient in the array. E.g. cals is the sum of all calories. Every value should be f64 and be rounded rounded to two decimal places, or one decimal place if it ends in a zero. E.g:

  • 12.294 -> 12.29
  • 12.295 -> 12.30 -> 12.3

Expected Function

pub struct Food {
    //expected public fields
}

pub fn calculate_macros(foods: Vec<Food>) -> json::JsonValue {

}

Usage

Here is a program to test your function:

use macro_calculator::*;

fn main(){
    let a = vec![
        Food {
            name: String::from("big mac"),
            calories: ["2133.84kJ".to_string(), "510kcal".to_string()],
            proteins: 27.0,
            fats: 26.0,
            carbs: 41.0,
            nbr_of_portions: 2.0,
        },
        Food {
            name: "pizza margherita".to_string(),
            calories: ["1500.59kJ".to_string(), "358.65kcal".to_string()],
            proteins: 13.89,
            fats: 11.21,
            carbs: 49.07,
            nbr_of_portions: 4.9,
        },
    ];

    println!("{:#}", calculate_macros(a));
}

And its output:

$ cargo run
{
    "cals": 2777.39,
    "carbs": 322.44,
    "proteins": 122.06,
    "fats": 106.93
}
$

Notions