pub struct SelectState { /* private fields */ }Expand description
State for a Select component.
Implementations§
Source§impl SelectState
impl SelectState
Sourcepub fn new<S: Into<String>>(options: Vec<S>) -> Self
pub fn new<S: Into<String>>(options: Vec<S>) -> Self
Creates a new select with the given options.
§Example
use envision::component::SelectState;
let state = SelectState::new(vec!["Option 1", "Option 2", "Option 3"]);
assert_eq!(state.options().len(), 3);
assert!(state.selected_index().is_none());Sourcepub fn with_selection<S: Into<String>>(options: Vec<S>, selected: usize) -> Self
pub fn with_selection<S: Into<String>>(options: Vec<S>, selected: usize) -> Self
Creates a new select with the given options and a pre-selected index.
§Example
use envision::component::SelectState;
let state = SelectState::with_selection(vec!["A", "B", "C"], 1);
assert_eq!(state.selected_index(), Some(1));Sourcepub fn options(&self) -> &[String]
pub fn options(&self) -> &[String]
Returns the options list.
§Examples
use envision::prelude::*;
let state = SelectState::new(vec!["Red", "Green", "Blue"]);
assert_eq!(state.options(), &["Red", "Green", "Blue"]);Sourcepub fn set_options<S: Into<String>>(&mut self, options: Vec<S>)
pub fn set_options<S: Into<String>>(&mut self, options: Vec<S>)
Sets the options list.
Resets selection if the current selected index is out of bounds.
§Examples
use envision::prelude::*;
let mut state = SelectState::with_selection(vec!["A", "B"], 1);
state.set_options(vec!["X", "Y", "Z"]);
assert_eq!(state.options(), &["X", "Y", "Z"]);
assert_eq!(state.selected_index(), Some(1));Sourcepub fn selected_index(&self) -> Option<usize>
pub fn selected_index(&self) -> Option<usize>
Returns the selected option index.
§Examples
use envision::prelude::*;
let state = SelectState::new(vec!["A", "B"]);
assert_eq!(state.selected_index(), None);
let state = SelectState::with_selection(vec!["A", "B"], 0);
assert_eq!(state.selected_index(), Some(0));Sourcepub fn selected(&self) -> Option<usize>
pub fn selected(&self) -> Option<usize>
Alias for selected_index().
Sourcepub fn selected_value(&self) -> Option<&str>
pub fn selected_value(&self) -> Option<&str>
Returns the selected option value.
§Examples
use envision::prelude::*;
let state = SelectState::with_selection(vec!["Red", "Green", "Blue"], 2);
assert_eq!(state.selected_value(), Some("Blue"));
let state = SelectState::new(vec!["Red", "Green", "Blue"]);
assert_eq!(state.selected_value(), None);Sourcepub fn selected_item(&self) -> Option<&str>
pub fn selected_item(&self) -> Option<&str>
Returns the selected option value as a string reference.
This is an alias for selected_value() that provides a
consistent accessor name across all selection-based components.
§Examples
use envision::prelude::*;
let state = SelectState::with_selection(vec!["Red", "Green"], 0);
assert_eq!(state.selected_item(), Some("Red"));Sourcepub fn set_selected(&mut self, index: Option<usize>)
pub fn set_selected(&mut self, index: Option<usize>)
Sets the selected option index.
§Examples
use envision::prelude::*;
let mut state = SelectState::new(vec!["A", "B", "C"]);
state.set_selected(Some(2));
assert_eq!(state.selected_value(), Some("C"));
state.set_selected(None);
assert_eq!(state.selected_value(), None);Sourcepub fn is_open(&self) -> bool
pub fn is_open(&self) -> bool
Returns true if the dropdown is open.
§Examples
use envision::prelude::*;
let mut state = SelectState::new(vec!["A", "B"]);
assert!(!state.is_open());
state.update(SelectMessage::Open);
assert!(state.is_open());Sourcepub fn placeholder(&self) -> &str
pub fn placeholder(&self) -> &str
Returns the placeholder text.
§Examples
use envision::prelude::*;
let state = SelectState::new(vec!["A", "B"]);
assert_eq!(state.placeholder(), "Select...");Sourcepub fn set_placeholder(&mut self, placeholder: impl Into<String>)
pub fn set_placeholder(&mut self, placeholder: impl Into<String>)
Sets the placeholder text.
§Examples
use envision::prelude::*;
let mut state = SelectState::new(vec!["A", "B"]);
state.set_placeholder("Pick one...");
assert_eq!(state.placeholder(), "Pick one...");Sourcepub fn with_placeholder(self, placeholder: impl Into<String>) -> Self
pub fn with_placeholder(self, placeholder: impl Into<String>) -> Self
Sets the placeholder text (builder pattern).
§Example
use envision::component::SelectState;
let state = SelectState::new(vec!["Red", "Green", "Blue"])
.with_placeholder("Choose a color...");
assert_eq!(state.placeholder(), "Choose a color...");Sourcepub fn update(&mut self, msg: SelectMessage) -> Option<SelectOutput>
pub fn update(&mut self, msg: SelectMessage) -> Option<SelectOutput>
Updates the select state with a message, returning any output.
§Examples
use envision::prelude::*;
let mut state = SelectState::new(vec!["Apple", "Banana", "Cherry"]);
state.update(SelectMessage::Open);
state.update(SelectMessage::Down);
let output = state.update(SelectMessage::Confirm);
assert_eq!(output, Some(SelectOutput::Selected("Banana".to_string())));Trait Implementations§
Source§impl Clone for SelectState
impl Clone for SelectState
Source§fn clone(&self) -> SelectState
fn clone(&self) -> SelectState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SelectState
impl Debug for SelectState
Source§impl Default for SelectState
impl Default for SelectState
Source§impl<'de> Deserialize<'de> for SelectState
impl<'de> Deserialize<'de> for SelectState
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for SelectState
impl PartialEq for SelectState
Source§impl Serialize for SelectState
impl Serialize for SelectState
impl StructuralPartialEq for SelectState
Auto Trait Implementations§
impl Freeze for SelectState
impl RefUnwindSafe for SelectState
impl Send for SelectState
impl Sync for SelectState
impl Unpin for SelectState
impl UnsafeUnpin for SelectState
impl UnwindSafe for SelectState
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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