[][src]Enum show_notes::e003::RelatedishThings

pub enum RelatedishThings {
    Unit,
    SomeName(String),
    SomeValue(i32),
    ComplexData {
        description: String,
        number: String,
    },
    ReusedStructure(PreexistingStruct),
}

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.

As Rust by Example puts it:

Any variant which is valid as a struct is also valid as an enum.

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

description: Stringnumber: String
ReusedStructure(PreexistingStruct)

And it can use other complex data types within those, of course.

Trait Implementations

impl Debug for RelatedishThings[src]

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]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]