teaching-material icon indicating copy to clipboard operation
teaching-material copied to clipboard

add typestates assignment

Open miguelraz opened this issue 2 years ago • 0 comments

Rework cool example from the RfR book by

  • Task 1:starting with a toy example like
struct Grounded;
struct Launched;
// and so on
struct Rocket<Stage = Grounded> {
    stage: std::marker::PhantomData<Stage>,
}
impl Default for Rocket<Grounded> {}
    impl Rocket<Grounded> {
    pub fn launch(self) -> Rocket<Launched> { }
}
impl Rocket<Launched> {
    pub fn accelerate(&mut self) { }
    pub fn decelerate(&mut self) { }
}
impl<Stage> Rocket<Stage> {
    pub fn color(&self) -> Color { }
    pub fn weight(&self) -> Kilograms { }
}

miguelraz avatar Oct 04 '22 01:10 miguelraz