Get Functions

Edit the body of get_functions to make this compile and pass tests:

#![allow(unused)]
fn main() {
struct Functions {
    five: fn() -> i32,
    increment: fn(i32) -> i32,
}

fn get_functions<const STEP: i32>() -> &'static Functions {
/*
    let five = || 5;
    let increment = |n| n + STEP;
    let functions = Functions { five, increment };
    &functions
*/
&Functions { five: || 5, increment: |n| n + STEP }
}

assert_eq!((get_functions::<1>().five)(), 5);
assert_eq!((get_functions::<3>().five)(), 5);
assert_eq!((get_functions::<1>().increment)(4), 5);
assert_eq!((get_functions::<3>().increment)(4), 7);
}

Try solving it in the playground:

struct Functions {
    five: fn() -> i32,
    increment: fn(i32) -> i32,
}

fn get_functions<const STEP: i32>() -> &'static Functions {
    let five = || 5;
    let increment = |n| n + STEP;
    let functions = Functions { five, increment };
    &functions
}

fn main() {
    assert_eq!((get_functions::<1>().five)(), 5);
    assert_eq!((get_functions::<3>().five)(), 5);
    assert_eq!((get_functions::<1>().increment)(4), 5);
    assert_eq!((get_functions::<3>().increment)(4), 7);
}