[−][src]Struct valerie::state::StateVec
A vector of States
Any type implementing StateTrait
can be used with StateVec.
This uses RwLock
of parking_lot internally with Vec
from alloc.
Implementations
impl<T> StateVec<T> where
T: Send,
[src]
T: Send,
pub fn new() -> Self
[src]
Declare an empty StateVec.
Examples
let vec = StateVec::new(); vec.push(StateAtomic::new(0)); vec.view(ul!(), |x| li!(x))
pub fn with_capacity(n: usize) -> Self
[src]
Declare a StateVec with some initial capacity.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); vec.view(ul!(), |x| li!(x))
impl<T> StateVec<T> where
T: StateTrait + Send,
[src]
T: StateTrait + Send,
pub fn view<F, U, V>(&self, enclose: Tag<U>, object: F) -> Tag<U> where
F: FnOnce(T) -> V,
F: Clone + 'static,
V: Component + 'static,
U: HtmlElement,
[src]
F: FnOnce(T) -> V,
F: Clone + 'static,
V: Component + 'static,
U: HtmlElement,
Render the StateVec to the DOM. It will update if any element changes or even if the list changes automatically.
enclose
is theComponent
inside which all of the elements will be present.object
is the function which will return aComponent
when passed a type following theStateTrait
. The function will define how all the elements will be seen inside theenclose
.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); div!( vec.view(ul!(), |x| li!(x)), br!(), vec.view(ol!(), |x| li!("Element ", x)) )
pub fn push(&self, value: T)
[src]
Push an element on to the StateVec.
Examples
let vec = StateVec::new(); vec.push(StateAtomic::new(0)); vec.view(ul!(), |x| li!(x))
pub fn insert(&self, index: usize, value: T)
[src]
Insert an element into the StateVec.
Examples
let vec = StateVec::new(); vec.insert(0, StateAtomic::new(0)); vec.view(ul!(), |x| li!(x))
pub fn remove(&self, index: usize)
[src]
Remove an element from the StateVec by index.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); vec.remove(3); vec.view(ul!(), |x| li!(x))
pub fn remove_elem(&self, elem: T)
[src]
Remove an element from the StateVec using a clone of the element.
Examples
let vec = StateVec::with_capacity(10); let removable = StateAtomic::new(13); vec.push(removable.clone()); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); vec.remove_elem(removable); vec.view(ul!(), |x| li!(x))
pub fn pop(&self)
[src]
Pop an element from the end of the StateVec.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); vec.pop(); vec.view(ul!(), |x| li!(x))
pub fn get(&self, index: usize) -> Option<T>
[src]
Get an element from the StateVec using index.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); div!( vec.get(3).unwrap(), vec.view(ul!(), |x| li!(x)) )
pub fn len(&self) -> usize
[src]
Get the len of the StateVec.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); div!( vec.len(), vec.view(ul!(), |x| li!(x)) )
pub fn is_empty(&self) -> bool
[src]
Check whether StateVec is empty.
Examples
let vec = StateVec::with_capacity(10); (0..10).for_each(|x| vec.push(StateAtomic::new(x))); div!( vec.is_empty(), vec.view(ul!(), |x| li!(x)) )
impl<T> StateVec<StateAtomic<T>> where
T: Copy + Send + Display,
[src]
T: Copy + Send + Display,
pub fn push_atomic(&self, value: T)
[src]
Push an element on the StateVec.
Same as push(StateAtomic::new(value))
.
Examples
let vec = StateVec::new(); vec.push_atomic(0); vec.view(ul!(), |x| li!(x))
pub fn insert_atomic(&self, index: usize, value: T)
[src]
Push an element on the StateVec.
Same as push(StateAtomic::insert(index, value))
.
Examples
let vec = StateVec::new(); vec.insert_atomic(0, 0); vec.view(ul!(), |x| li!(x))
impl<T> StateVec<StateMutex<T>> where
T: Clone + Send + Display,
[src]
T: Clone + Send + Display,
pub fn push_mutex(&self, value: T)
[src]
Push an element on the StateVec.
Same as push(StateMutex::new(value))
.
Examples
let vec = StateVec::new(); vec.push_mutex(0); vec.view(ul!(), |x| li!(x))
pub fn insert_mutex(&self, index: usize, value: T)
[src]
Push an element on the StateVec.
Same as push(StateMutex::insert(index, value))
.
Examples
let vec = StateVec::new(); vec.insert_mutex(0, 0); vec.view(ul!(), |x| li!(x))
Trait Implementations
impl<T> Clone for StateVec<T> where
T: Send + 'static,
[src]
T: Send + 'static,
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Default> Default for StateVec<T> where
T: Send + 'static,
[src]
T: Send + 'static,
impl<T> FromIterator<T> for StateVec<T> where
T: StateTrait + Send,
[src]
T: StateTrait + Send,
fn from_iter<U>(iter: U) -> Self where
U: IntoIterator<Item = T>,
[src]
U: IntoIterator<Item = T>,
impl<T> FromIterator<T> for StateVec<StateAtomic<T>> where
T: Copy + Send + Display,
[src]
T: Copy + Send + Display,
fn from_iter<U>(iter: U) -> Self where
U: IntoIterator<Item = T>,
[src]
U: IntoIterator<Item = T>,
impl<T> FromIterator<T> for StateVec<StateMutex<T>> where
T: Clone + Send + Display,
[src]
T: Clone + Send + Display,
fn from_iter<U>(iter: U) -> Self where
U: IntoIterator<Item = T>,
[src]
U: IntoIterator<Item = T>,
impl<T> IntoIterator for StateVec<T> where
T: StateTrait + Send,
[src]
T: StateTrait + Send,
Auto Trait Implementations
impl<T> !RefUnwindSafe for StateVec<T>
impl<T> Send for StateVec<T> where
T: Sync,
T: Sync,
impl<T> Sync for StateVec<T> where
T: Sync,
T: Sync,
impl<T> Unpin for StateVec<T>
impl<T> !UnwindSafe for StateVec<T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,