Module show_notes::e003

source ·
Expand description

No. more. nulls.

  • Date: October 21, 2015
  • Subject: Enumerated (enum) types, pattern matching, and meaningful return values.
  • Audio


Today’s episode discusses, in order:

  • Enumerated types, with an eye to the difference between structs and enums, and to the differences between enums in C and in Rust.
  • Pattern matching, with a focus on using them with enumerated types and some discussion about how they differ from switch blocks in C-like languages.
  • Using the Option and Result enumerated types with pattern matching to provide meaningful returns from functions safely.


There is a specific order to the examples below, and it is not the automatically-alphabetized order rendered by rustdoc. Instead, you should work through in the sequence they appear in the source:

  1. RelatedishThings
  2. demonstrate_basic_enumeration
  3. demonstrate_match
  4. get_an_option
  5. demonstrate_option
  6. get_a_result
  7. demonstrate_result




  • An enumeration can hold a variety of types. This one shows you a few.


  • Shows how the result of an enum comes back as increasingly complex data.
  • Shows in a bit more detail how match works.
  • Shows how an option type works in practice.
  • Shows how a Result type works in practice.
  • Shows how to return either a meaningful result or an error as an enum.
  • Shows how this is used in a more meaningful context, with a standard type.
  • Shows how returning a RelatedishThings::ComplexData instance works.
  • get_name 🔒
    Shows how returning a RelatedishThings::SomeName instance works.
  • Shows how returning a RelatedishThings::ReusedStructure instance works.
  • get_unit 🔒
    Shows how returning a RelatedishThings::Unit instance works.
  • get_value 🔒
    Shows how returning a RelatedishThings::SomeValue instance works.