Chapter 2. Modeling data with enums

 

2.1  Or versus and

2.1.1  Modeling data with a struct

2.1.2  Turning a struct into an enum

2.1.3  Deciding between structs and enums

2.2  Enums for polymorphism

2.2.1  Compile-time polymorphism

2.3  Enums instead of subclassing

2.3.1  Forming a model for a workout app

2.3.2  Creating a superclass

2.3.3  The downsides of subclassing

2.3.4  Refactoring a data model with enums

2.3.5  Deciding on subclassing or enums

2.3.6  Exercises

2.4  Algebraic data types

2.4.1  Sum types

2.4.2  Product types

2.4.3  Distributing a sum over an enum

2.4.4  Exercise

2.5  A safer use of strings

2.5.1  Dangers of raw values

2.5.2  Matching on Strings

2.5.3  Exercises

2.6  Closing thoughts

2.7  Summary

2.8  Answers