title: How do I choose a random value from an enum?
body: <p>The <a href="https://github.com/FGRibreau/spinners" rel="noreferrer">spinners</a> crate has an <a href="https://docs.rs/spinners/1.0.0/spinners/enum.Spinners.html" rel="noreferrer">enum</a> with a large selection of possible spinners.</p>
  
  <p>Here's the enum (with all values except the top and bottom 4 skipped):</p>
  
  <pre><code>pub enum Spinners {
      Dots,
      Dots2,
      Dots3,
      Dots4,
      ...
      Shark,
      Dqpb,
      Weather,
      Christmas,
  }
  </code></pre>
  
  <p>A new spinner is easy to create:</p>
  
  <pre><code>extern crate spinners;
  
  use spinners::{Spinner, Spinners};
  use std::thread::sleep;
  use std::time::Duration;
  
  fn main() {
      let sp = Spinner::new(Spinners::Dots9, "Waiting for 3 seconds".into());
      sleep(Duration::from_secs(3));
      sp.stop();
  }
  </code></pre>
  
  <p>However, I wish to select a spinner at random, and this does not work:</p>
  
  <pre><code>let spinner_enum = rng.choose(Spinners).unwrap_or(&amp;Spinners::Dots9);
  </code></pre>
  
  <p>Because:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0423]: expected value, found enum `Spinners`
  
  let spinner_enum = rng.choose(Spinners).unwrap_or(&amp;Spinners::Dots9);
                                ^^^^^^^^ not a value
  </code></pre>
  
  <p>How can I choose an enum value at random, and use that to display a random spinner?</p>