[−][src]Enum show_notes::e003::RelatedishThings
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.
Fields of ComplexData
ReusedStructure(PreexistingStruct)
And it can use other complex data types within those, of course.
Trait Implementations
Auto Trait Implementations
impl Send for RelatedishThings
impl Unpin for RelatedishThings
impl Sync for RelatedishThings
impl RefUnwindSafe for RelatedishThings
impl UnwindSafe for RelatedishThings
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,