Enum show_notes::e003::RelatedishThings
source · pub enum RelatedishThings {
Unit,
SomeName(String),
SomeValue(i32),
ComplexData {
description: String,
number: String,
},
ReusedStructure(PreexistingStruct),
}
Expand description
An enumeration can hold a variety of types. This one shows you a few.
Note: using an enum
this way is actually crazy. The types should usually
have some relationship to each other. Here, they don’t. The only reason I
have them together like this is to show you that these aren’t just integers.
Enums in Rust can have members of any other type.
Any variant which is valid as a
struct
is also valid as anenum
.
What’s the difference between an enum
and struct
? An enum
is only ever
one of the options which comprise it, whereas a struct
is always all
the elements which comprise it.
One enormous benefit of enum
types is that, when they are the return value
of a function (as in the examples below), they must be handled.
Variants§
Unit
This doesn’t have a value other than being RelatedishThings::Unit.
SomeName(String)
It could be a tuple struct, with basically any value type embedded.
SomeValue(i32)
ComplexData
It can be a full-on struct-type construct.
ReusedStructure(PreexistingStruct)
And it can use other complex data types within those, of course.