mirror of https://github.com/01-edu/public.git
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.
1.4 KiB
1.4 KiB
question_mark
Instructions
Create the following structures. Each has one element:
One
:first_layer
as typeOption<Two>
.Two
:second_layer
as typeOption<Three>
Three
:third_layer
as typeOption<Four>
Four
:fourth_layer
as typeOption<u16>
.
Beside the structures, you must create a function named get_fourth_layer
, and associate it to the One
structure. This function should return the Option
value in the Four
structure.
Expected Function and structures
pub struct One {
// expected public fields
}
pub struct Two {
// expected public fields
}
pub struct Three {
// expected public fields
}
pub struct Four {
// expected public fields
}
impl One {
pub fn get_fourth_layer(&self) -> Option<u16> {}
}
Usage
Here is a program to test your function:
use question_mark::*;
fn main() {
let a = One {
first_layer : Some(Two {
second_layer: Some(Three {
third_layer: Some(Four {
fourth_layer: Some(1000)
})
})
})
};
// output: 1000
println!("{:?}", match a.get_fourth_layer() {
Some(e) => e,
None => 0
})
}
And its output:
$ cargo run
1000
$