pub struct Select<T: Display> {
pub title: String,
pub theme: 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 ms = 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 = ms.run().expect("error running multi select");Fields§
§title: StringThe title of the selector
theme: 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<T: Display> Select<T>
impl<T: Display> Select<T>
sourcepub fn new<S: Into<String>>(title: S) -> Self
pub fn new<S: Into<String>>(title: S) -> Self
Create a new select with the given title
Examples found in repository?
examples/select.rs (line 4)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
fn main() {
let ms = Select::new("Country")
.description("Pick a country")
.filterable(true)
.option(
DemandOption::new("US")
.label("United States")
.selected(true),
)
.option(DemandOption::new("DE").label("Germany"))
.option(DemandOption::new("BR").label("Brazil"))
.option(DemandOption::new("CA").label("Canada"))
.option(DemandOption::new("MX").label("Mexico"))
.option(DemandOption::new("FR").label("France"))
.option(DemandOption::new("IT").label("Italy"))
.option(DemandOption::new("ES").label("Spain"))
.option(DemandOption::new("JP").label("Japan"))
.option(DemandOption::new("CN").label("China"))
.option(DemandOption::new("IN").label("India"))
.option(DemandOption::new("RU").label("Russia"))
.option(DemandOption::new("AU").label("Australia"))
.option(DemandOption::new("GB").label("United Kingdom"))
.option(DemandOption::new("NL").label("Netherlands"))
.option(DemandOption::new("SE").label("Sweden"))
.option(DemandOption::new("CH").label("Switzerland"))
.option(DemandOption::new("NO").label("Norway"))
.option(DemandOption::new("DK").label("Denmark"))
.option(DemandOption::new("BE").label("Belgium"))
.option(DemandOption::new("AT").label("Austria"))
.option(DemandOption::new("PL").label("Poland"))
.option(DemandOption::new("TR").label("Turkey"))
.option(DemandOption::new("CZ").label("Czech Republic"))
.option(DemandOption::new("IE").label("Ireland"))
.option(DemandOption::new("SG").label("Singapore"))
.option(DemandOption::new("HK").label("Hong Kong"))
.option(DemandOption::new("KR").label("South Korea"))
.option(DemandOption::new("AR").label("Argentina"))
.option(DemandOption::new("CL").label("Chile"))
.option(DemandOption::new("CO").label("Colombia"))
.option(DemandOption::new("PE").label("Peru"))
.option(DemandOption::new("VE").label("Venezuela"))
.option(DemandOption::new("UA").label("Ukraine"))
.option(DemandOption::new("RO").label("Romania"))
.option(DemandOption::new("ZA").label("South Africa"))
.option(DemandOption::new("EG").label("Egypt"))
.option(DemandOption::new("SA").label("Saudi Arabia"))
.option(DemandOption::new("AE").label("United Arab Emirates"));
ms.run().expect("error running select");
}sourcepub fn description(self, description: &str) -> Self
pub fn description(self, description: &str) -> Self
Set the description of the selector
Examples found in repository?
examples/select.rs (line 5)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
fn main() {
let ms = Select::new("Country")
.description("Pick a country")
.filterable(true)
.option(
DemandOption::new("US")
.label("United States")
.selected(true),
)
.option(DemandOption::new("DE").label("Germany"))
.option(DemandOption::new("BR").label("Brazil"))
.option(DemandOption::new("CA").label("Canada"))
.option(DemandOption::new("MX").label("Mexico"))
.option(DemandOption::new("FR").label("France"))
.option(DemandOption::new("IT").label("Italy"))
.option(DemandOption::new("ES").label("Spain"))
.option(DemandOption::new("JP").label("Japan"))
.option(DemandOption::new("CN").label("China"))
.option(DemandOption::new("IN").label("India"))
.option(DemandOption::new("RU").label("Russia"))
.option(DemandOption::new("AU").label("Australia"))
.option(DemandOption::new("GB").label("United Kingdom"))
.option(DemandOption::new("NL").label("Netherlands"))
.option(DemandOption::new("SE").label("Sweden"))
.option(DemandOption::new("CH").label("Switzerland"))
.option(DemandOption::new("NO").label("Norway"))
.option(DemandOption::new("DK").label("Denmark"))
.option(DemandOption::new("BE").label("Belgium"))
.option(DemandOption::new("AT").label("Austria"))
.option(DemandOption::new("PL").label("Poland"))
.option(DemandOption::new("TR").label("Turkey"))
.option(DemandOption::new("CZ").label("Czech Republic"))
.option(DemandOption::new("IE").label("Ireland"))
.option(DemandOption::new("SG").label("Singapore"))
.option(DemandOption::new("HK").label("Hong Kong"))
.option(DemandOption::new("KR").label("South Korea"))
.option(DemandOption::new("AR").label("Argentina"))
.option(DemandOption::new("CL").label("Chile"))
.option(DemandOption::new("CO").label("Colombia"))
.option(DemandOption::new("PE").label("Peru"))
.option(DemandOption::new("VE").label("Venezuela"))
.option(DemandOption::new("UA").label("Ukraine"))
.option(DemandOption::new("RO").label("Romania"))
.option(DemandOption::new("ZA").label("South Africa"))
.option(DemandOption::new("EG").label("Egypt"))
.option(DemandOption::new("SA").label("Saudi Arabia"))
.option(DemandOption::new("AE").label("United Arab Emirates"));
ms.run().expect("error running select");
}sourcepub fn option(self, option: DemandOption<T>) -> Self
pub fn option(self, option: DemandOption<T>) -> Self
Add an option to the selector
Examples found in repository?
examples/select.rs (lines 7-11)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
fn main() {
let ms = Select::new("Country")
.description("Pick a country")
.filterable(true)
.option(
DemandOption::new("US")
.label("United States")
.selected(true),
)
.option(DemandOption::new("DE").label("Germany"))
.option(DemandOption::new("BR").label("Brazil"))
.option(DemandOption::new("CA").label("Canada"))
.option(DemandOption::new("MX").label("Mexico"))
.option(DemandOption::new("FR").label("France"))
.option(DemandOption::new("IT").label("Italy"))
.option(DemandOption::new("ES").label("Spain"))
.option(DemandOption::new("JP").label("Japan"))
.option(DemandOption::new("CN").label("China"))
.option(DemandOption::new("IN").label("India"))
.option(DemandOption::new("RU").label("Russia"))
.option(DemandOption::new("AU").label("Australia"))
.option(DemandOption::new("GB").label("United Kingdom"))
.option(DemandOption::new("NL").label("Netherlands"))
.option(DemandOption::new("SE").label("Sweden"))
.option(DemandOption::new("CH").label("Switzerland"))
.option(DemandOption::new("NO").label("Norway"))
.option(DemandOption::new("DK").label("Denmark"))
.option(DemandOption::new("BE").label("Belgium"))
.option(DemandOption::new("AT").label("Austria"))
.option(DemandOption::new("PL").label("Poland"))
.option(DemandOption::new("TR").label("Turkey"))
.option(DemandOption::new("CZ").label("Czech Republic"))
.option(DemandOption::new("IE").label("Ireland"))
.option(DemandOption::new("SG").label("Singapore"))
.option(DemandOption::new("HK").label("Hong Kong"))
.option(DemandOption::new("KR").label("South Korea"))
.option(DemandOption::new("AR").label("Argentina"))
.option(DemandOption::new("CL").label("Chile"))
.option(DemandOption::new("CO").label("Colombia"))
.option(DemandOption::new("PE").label("Peru"))
.option(DemandOption::new("VE").label("Venezuela"))
.option(DemandOption::new("UA").label("Ukraine"))
.option(DemandOption::new("RO").label("Romania"))
.option(DemandOption::new("ZA").label("South Africa"))
.option(DemandOption::new("EG").label("Egypt"))
.option(DemandOption::new("SA").label("Saudi Arabia"))
.option(DemandOption::new("AE").label("United Arab Emirates"));
ms.run().expect("error running select");
}sourcepub fn filterable(self, filterable: bool) -> Self
pub fn filterable(self, filterable: bool) -> Self
Set whether the selector can be filtered with a query
Examples found in repository?
examples/select.rs (line 6)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
fn main() {
let ms = Select::new("Country")
.description("Pick a country")
.filterable(true)
.option(
DemandOption::new("US")
.label("United States")
.selected(true),
)
.option(DemandOption::new("DE").label("Germany"))
.option(DemandOption::new("BR").label("Brazil"))
.option(DemandOption::new("CA").label("Canada"))
.option(DemandOption::new("MX").label("Mexico"))
.option(DemandOption::new("FR").label("France"))
.option(DemandOption::new("IT").label("Italy"))
.option(DemandOption::new("ES").label("Spain"))
.option(DemandOption::new("JP").label("Japan"))
.option(DemandOption::new("CN").label("China"))
.option(DemandOption::new("IN").label("India"))
.option(DemandOption::new("RU").label("Russia"))
.option(DemandOption::new("AU").label("Australia"))
.option(DemandOption::new("GB").label("United Kingdom"))
.option(DemandOption::new("NL").label("Netherlands"))
.option(DemandOption::new("SE").label("Sweden"))
.option(DemandOption::new("CH").label("Switzerland"))
.option(DemandOption::new("NO").label("Norway"))
.option(DemandOption::new("DK").label("Denmark"))
.option(DemandOption::new("BE").label("Belgium"))
.option(DemandOption::new("AT").label("Austria"))
.option(DemandOption::new("PL").label("Poland"))
.option(DemandOption::new("TR").label("Turkey"))
.option(DemandOption::new("CZ").label("Czech Republic"))
.option(DemandOption::new("IE").label("Ireland"))
.option(DemandOption::new("SG").label("Singapore"))
.option(DemandOption::new("HK").label("Hong Kong"))
.option(DemandOption::new("KR").label("South Korea"))
.option(DemandOption::new("AR").label("Argentina"))
.option(DemandOption::new("CL").label("Chile"))
.option(DemandOption::new("CO").label("Colombia"))
.option(DemandOption::new("PE").label("Peru"))
.option(DemandOption::new("VE").label("Venezuela"))
.option(DemandOption::new("UA").label("Ukraine"))
.option(DemandOption::new("RO").label("Romania"))
.option(DemandOption::new("ZA").label("South Africa"))
.option(DemandOption::new("EG").label("Egypt"))
.option(DemandOption::new("SA").label("Saudi Arabia"))
.option(DemandOption::new("AE").label("United Arab Emirates"));
ms.run().expect("error running select");
}sourcepub fn run(self) -> Result<T>
pub fn run(self) -> Result<T>
Displays the selector to the user and returns their selected options
Examples found in repository?
examples/select.rs (line 50)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
fn main() {
let ms = Select::new("Country")
.description("Pick a country")
.filterable(true)
.option(
DemandOption::new("US")
.label("United States")
.selected(true),
)
.option(DemandOption::new("DE").label("Germany"))
.option(DemandOption::new("BR").label("Brazil"))
.option(DemandOption::new("CA").label("Canada"))
.option(DemandOption::new("MX").label("Mexico"))
.option(DemandOption::new("FR").label("France"))
.option(DemandOption::new("IT").label("Italy"))
.option(DemandOption::new("ES").label("Spain"))
.option(DemandOption::new("JP").label("Japan"))
.option(DemandOption::new("CN").label("China"))
.option(DemandOption::new("IN").label("India"))
.option(DemandOption::new("RU").label("Russia"))
.option(DemandOption::new("AU").label("Australia"))
.option(DemandOption::new("GB").label("United Kingdom"))
.option(DemandOption::new("NL").label("Netherlands"))
.option(DemandOption::new("SE").label("Sweden"))
.option(DemandOption::new("CH").label("Switzerland"))
.option(DemandOption::new("NO").label("Norway"))
.option(DemandOption::new("DK").label("Denmark"))
.option(DemandOption::new("BE").label("Belgium"))
.option(DemandOption::new("AT").label("Austria"))
.option(DemandOption::new("PL").label("Poland"))
.option(DemandOption::new("TR").label("Turkey"))
.option(DemandOption::new("CZ").label("Czech Republic"))
.option(DemandOption::new("IE").label("Ireland"))
.option(DemandOption::new("SG").label("Singapore"))
.option(DemandOption::new("HK").label("Hong Kong"))
.option(DemandOption::new("KR").label("South Korea"))
.option(DemandOption::new("AR").label("Argentina"))
.option(DemandOption::new("CL").label("Chile"))
.option(DemandOption::new("CO").label("Colombia"))
.option(DemandOption::new("PE").label("Peru"))
.option(DemandOption::new("VE").label("Venezuela"))
.option(DemandOption::new("UA").label("Ukraine"))
.option(DemandOption::new("RO").label("Romania"))
.option(DemandOption::new("ZA").label("South Africa"))
.option(DemandOption::new("EG").label("Egypt"))
.option(DemandOption::new("SA").label("Saudi Arabia"))
.option(DemandOption::new("AE").label("United Arab Emirates"));
ms.run().expect("error running select");
}Auto Trait Implementations§
impl<T> RefUnwindSafe for Select<T>where
T: RefUnwindSafe,
impl<T> Send for Select<T>where
T: Send,
impl<T> Sync for Select<T>where
T: Sync,
impl<T> Unpin for Select<T>where
T: Unpin,
impl<T> UnwindSafe for Select<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