This commit is contained in:
parent
f373feb7c4
commit
df8e885c7e
@ -8,18 +8,20 @@ struct Functions {
|
|||||||
increment: fn(i32) -> i32,
|
increment: fn(i32) -> i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_functions() -> &'static Functions {
|
fn get_functions<const STEP: i32>() -> &'static Functions {
|
||||||
# /*
|
# /*
|
||||||
let five = || 5;
|
let five = || 5;
|
||||||
let increment = |n| n + 1;
|
let increment = |n| n + STEP;
|
||||||
let functions = Functions { five, increment };
|
let functions = Functions { five, increment };
|
||||||
&functions
|
&functions
|
||||||
# */
|
# */
|
||||||
# &Functions { five: || 5, increment: |n| n + 1 }
|
# &Functions { five: || 5, increment: |n| n + STEP }
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_eq!((get_functions().five)(), 5);
|
assert_eq!((get_functions::<1>().five)(), 5);
|
||||||
assert_eq!((get_functions().increment)(4), 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:
|
Try solving it in the playground:
|
||||||
@ -30,15 +32,17 @@ struct Functions {
|
|||||||
increment: fn(i32) -> i32,
|
increment: fn(i32) -> i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_functions() -> &'static Functions {
|
fn get_functions<const STEP: i32>() -> &'static Functions {
|
||||||
let five = || 5;
|
let five = || 5;
|
||||||
let increment = |n| n + 1;
|
let increment = |n| n + STEP;
|
||||||
let functions = Functions { five, increment };
|
let functions = Functions { five, increment };
|
||||||
&functions
|
&functions
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
assert_eq!((get_functions().five)(), 5);
|
assert_eq!((get_functions::<1>().five)(), 5);
|
||||||
assert_eq!((get_functions().increment)(4), 5);
|
assert_eq!((get_functions::<3>().five)(), 5);
|
||||||
|
assert_eq!((get_functions::<1>().increment)(4), 5);
|
||||||
|
assert_eq!((get_functions::<3>().increment)(4), 7);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user