33: Improve solution for Rust track exercise "Raindrops".

[?]
Aaw9nJhsNmfzFih9mKyNw9mV8CgERXJkRa1kK1Kx3LQH
Sep 3, 2021, 9:43 AM
UJRSX6Q3YG6SSB2ZWG6K3KOE3E7XKNE2PU2HLWBFVOSLLVBW35JAC

Dependencies

  • [2] XDEY7SNL 31: Improve solution for Rust track exercise "Raindrops".
  • [3] SGDHLMNR 27: Improve solution for Rust track exercise "Raindrops".
  • [4] WQIAT4H6 9: Improve solution for Rust track exercise "Raindrops".
  • [5] N3POGH26 7: Add solution for Rust track exercise "Raindrops".
  • [6] MSFESBT6 6: Add Rust track exercise "Raindrops".
  • [7] MBAFQOWX 8: Improve solution for Rust track exercise "Raindrops".
  • [8] QGB53CNE 14: Improve solution for Rust track exercise "Raindrops".

Change contents

  • replacement in rust/raindrops/src/lib.rs at line 2
    [2.27][2.27:99]()
    const FACTORS_VOWELS: &[(u32, &str)] = &[(3, "i"), (5, "a"), (7, "o")];
    [2.27]
    [2.99]
    const FACTORS_VOWELS: [(u32, char); 3] = [(3, 'i'), (5, 'a'), (7, 'o')];
  • replacement in rust/raindrops/src/lib.rs at line 4
    [2.126][2.126:242]()
    const MAX_STRING_LENGTH: usize =
    (PREFIX.len() + FACTORS_VOWELS[0].1.len() + SUFFIX.len()) * FACTORS_VOWELS.len();
    [2.126]
    [2.242]
    const MAX_STRING_LENGTH: usize = (PREFIX.len() + 1 + SUFFIX.len()) * FACTORS_VOWELS.len();
  • edit in rust/raindrops/src/lib.rs at line 7
    [3.1819][2.244:604](),[3.28][3.1046:1047](),[3.42][3.1046:1047](),[3.50][3.1046:1047](),[3.74][3.1046:1047](),[2.604][3.1046:1047](),[3.1046][3.1046:1047]()
    // Check that the assumption that MAX_STRING_LENGTH is equal to the length of constructing the largest output holds.
    debug_assert!(
    FACTORS_VOWELS
    .iter()
    .map(|tuple| PREFIX.len() + tuple.1.len() + SUFFIX.len())
    .sum::<usize>()
    .eq(&MAX_STRING_LENGTH),
    "MAX_STRING_LENGTH is not equal to the length of the largest constructible output."
    );
  • replacement in rust/raindrops/src/lib.rs at line 9
    [2.663][2.663:715]()
    FACTORS_VOWELS.iter().for_each(|(factor, vowel)| {
    [2.663]
    [2.715]
    FACTORS_VOWELS.iter().for_each(|&(factor, vowel)| {
  • replacement in rust/raindrops/src/lib.rs at line 12
    [2.767][2.767:791]()
    out.push_str(vowel);
    [2.767]
    [2.791]
    out.push(vowel);