pub struct Select<'a, T> {
pub title: String,
pub theme: &'a Theme,
pub description: String,
pub options: Vec<DemandOption<T>>,
pub filterable: bool,
/* private fields */
}Expand description
Select multiple options from a list
§Example
use demand::{DemandOption, Select};
let select = Select::new("Toppings")
.description("Select your topping")
.filterable(true)
.option(DemandOption::new("Lettuce"))
.option(DemandOption::new("Tomatoes"))
.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 topping = match select.run() {
Ok(value) => value,
Err(e) => {
if e.kind() == std::io::ErrorKind::Interrupted {
println!("Input cancelled");
return;
} else {
panic!("Error: {}", e);
}
}
};Fields§
§title: StringThe title of the selector
theme: &'a ThemeThe colors/style of the selector
description: StringA description to display above the selector
options: Vec<DemandOption<T>>The options which can be selected
filterable: boolWhether the selector can be filtered with a query
Implementations§
Source§impl<'a, T> Select<'a, T>
impl<'a, T> Select<'a, T>
Sourcepub fn description(self, description: &str) -> Self
pub fn description(self, description: &str) -> Self
Set the description of the selector
Sourcepub fn option(self, option: DemandOption<T>) -> Self
pub fn option(self, option: DemandOption<T>) -> Self
Add an option to the selector
Sourcepub fn options(self, options: Vec<DemandOption<T>>) -> Self
pub fn options(self, options: Vec<DemandOption<T>>) -> Self
Add multiple options to the selector
Sourcepub fn filterable(self, filterable: bool) -> Self
pub fn filterable(self, filterable: bool) -> Self
Set whether the selector can be filtered with a query
Auto Trait Implementations§
impl<'a, T> !Freeze for Select<'a, T>
impl<'a, T> RefUnwindSafe for Select<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Select<'a, T>where
T: Send,
impl<'a, T> Sync for Select<'a, T>where
T: Sync,
impl<'a, T> Unpin for Select<'a, T>where
T: Unpin,
impl<'a, T> UnwindSafe for Select<'a, T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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