demand

Struct List

Source
pub struct List<'a> {
    pub title: String,
    pub description: String,
    pub success_items: usize,
    pub theme: &'a Theme,
    /* private fields */
}
Expand description

Display a list of options

§Example

use demand::{DmandOption, List};

let list = List::new("Toppings")
  .description("Select your toppings")
  .min(1)
  .max(4)
  .filterable(true)
  .option(DemandOption::new("Lettuce").selected(true))
  .option(DemandOption::new("Tomatoes").selected(true))
  .option(DemandOption::new("Charm Sauce"))
  .option(DemandOption::new("Jalapenos").label("Jalapeños"))
  .option(DemandOption::new("Cheese"))
  .option(DemandOption::new("Vegan Cheese"))
  .option(DemandOption::new("Nutella"));
let toppings = match list.run() {
  Ok(_) => {},
  Err(e) => {
      if e.kind() == std::io::ErrorKind::Interrupted {
          println!("Input cancelled");
          return;
      } else {
          panic!("Error: {}", e);
      }
  }
};

Fields§

§title: String

Title of the list

§description: String

Description of the list

§success_items: usize

Number of items to show on each page

§theme: &'a Theme

Colors/style of the input

Implementations§

Source§

impl<'a> List<'a>

Source

pub fn new<S: Into<String>>(title: S) -> Self

Creates a new list with a title

Source

pub fn description(self, description: &str) -> Self

Sets the description of the list

Source

pub fn item(self, entry: &'a str) -> Self

Adds an item to the list

Source

pub fn items(self, entries: &[&'a str]) -> Self

Adds multiple items to the list

Source

pub fn success_items(self, items: usize) -> Self

Sets the number of items to show on confirmation

Source

pub fn filterable(self, filterable: bool) -> Self

Sets the list to be filterable

Source

pub fn theme(self, theme: &'a Theme) -> Self

Sets the theme of the list

Source

pub fn run(self) -> Result<(), Error>

Displays the input to the user and returns the response

This function will block until the user submits the input. If the user cancels the input, an error of type io::ErrorKind::Interrupted is returned.

Auto Trait Implementations§

§

impl<'a> Freeze for List<'a>

§

impl<'a> RefUnwindSafe for List<'a>

§

impl<'a> Send for List<'a>

§

impl<'a> Sync for List<'a>

§

impl<'a> Unpin for List<'a>

§

impl<'a> UnwindSafe for List<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.