33 lines
414 B
Rust
33 lines
414 B
Rust
|
trait X {
|
||
|
fn provided(&self) -> usize {
|
||
|
5
|
||
|
}
|
||
|
fn required(&self) -> u32;
|
||
|
}
|
||
|
|
||
|
struct Bar;
|
||
|
|
||
|
impl Bar {
|
||
|
fn new() -> Self {
|
||
|
Self
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl X for Bar {
|
||
|
fn provided(&self) -> usize {
|
||
|
1
|
||
|
}
|
||
|
fn required(&self) -> u32 {
|
||
|
7
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const fn foo() -> usize {
|
||
|
1
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let bar: [Bar; foo()] = [Bar::new()];
|
||
|
assert_eq!(bar[0].provided(), foo());
|
||
|
}
|