Trait lens_rs::traits::LensRef [−][src]
A trait representing the optics allows you to access the field.
A Lens
can access the substructure must exist.
Example
let mut x = (1, (2, (3, 4))); *optics!(_1._1._1).view_mut(&mut x) *= 2; assert_eq!(optics!(_1._1._1).view(x), 8);
Required methods
Loading content...Implementors
impl<'t, T: ?Sized, Ls> LensRef<&'t T> for _ref<Ls> where
Ls: LensRef<<&'t T as Deref>::Target>,
[src]
Ls: LensRef<<&'t T as Deref>::Target>,
impl<'t, T: ?Sized, Ls> LensRef<&'t mut T> for _mut<Ls> where
Ls: LensRef<<&'t mut T as Deref>::Target>,
[src]
Ls: LensRef<<&'t mut T as Deref>::Target>,
impl<K, Q: ?Sized, V, Tr> LensRef<BTreeMap<K, V>> for _ix<&Q, Tr> where
K: Borrow<Q> + Ord,
Q: Ord,
Tr: LensRef<V>,
[src]
K: Borrow<Q> + Ord,
Q: Ord,
Tr: LensRef<V>,
impl<K, Q: ?Sized, V, Tr> LensRef<HashMap<K, V, RandomState>> for _ix<&Q, Tr> where
K: Eq + Hash + Borrow<Q>,
Q: Eq + Hash,
Tr: LensRef<V>,
[src]
K: Eq + Hash + Borrow<Q>,
Q: Eq + Hash,
Tr: LensRef<V>,
impl<Ls> LensRef<str> for _ix<Range<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<str> for _ix<RangeFrom<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<str> for _ix<RangeFull, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<str> for _ix<RangeTo<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<String> for _ix<Range<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<String> for _ix<RangeFrom<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<String> for _ix<RangeFull, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls> LensRef<String> for _ix<RangeTo<usize>, Ls> where
Ls: LensRef<str>,
[src]
Ls: LensRef<str>,
impl<Ls, A> LensRef<(A,)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A> LensRef<(A,)> for _both<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B> LensRef<(A, B)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B> LensRef<(A, B)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C> LensRef<(A, B, C)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B, C> LensRef<(A, B, C)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C> LensRef<(A, B, C)> for _2<Ls> where
Ls: LensRef<C>,
[src]
Ls: LensRef<C>,
impl<Ls, A, B, C, D> LensRef<(A, B, C, D)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B, C, D> LensRef<(A, B, C, D)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C, D> LensRef<(A, B, C, D)> for _2<Ls> where
Ls: LensRef<C>,
[src]
Ls: LensRef<C>,
impl<Ls, A, B, C, D> LensRef<(A, B, C, D)> for _3<Ls> where
Ls: LensRef<D>,
[src]
Ls: LensRef<D>,
impl<Ls, A, B, C, D, E> LensRef<(A, B, C, D, E)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B, C, D, E> LensRef<(A, B, C, D, E)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C, D, E> LensRef<(A, B, C, D, E)> for _2<Ls> where
Ls: LensRef<C>,
[src]
Ls: LensRef<C>,
impl<Ls, A, B, C, D, E> LensRef<(A, B, C, D, E)> for _3<Ls> where
Ls: LensRef<D>,
[src]
Ls: LensRef<D>,
impl<Ls, A, B, C, D, E> LensRef<(A, B, C, D, E)> for _4<Ls> where
Ls: LensRef<E>,
[src]
Ls: LensRef<E>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _2<Ls> where
Ls: LensRef<C>,
[src]
Ls: LensRef<C>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _3<Ls> where
Ls: LensRef<D>,
[src]
Ls: LensRef<D>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _4<Ls> where
Ls: LensRef<E>,
[src]
Ls: LensRef<E>,
impl<Ls, A, B, C, D, E, F> LensRef<(A, B, C, D, E, F)> for _5<Ls> where
Ls: LensRef<F>,
[src]
Ls: LensRef<F>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _0<Ls> where
Ls: LensRef<A>,
[src]
Ls: LensRef<A>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _1<Ls> where
Ls: LensRef<B>,
[src]
Ls: LensRef<B>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _2<Ls> where
Ls: LensRef<C>,
[src]
Ls: LensRef<C>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _3<Ls> where
Ls: LensRef<D>,
[src]
Ls: LensRef<D>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _4<Ls> where
Ls: LensRef<E>,
[src]
Ls: LensRef<E>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _5<Ls> where
Ls: LensRef<F>,
[src]
Ls: LensRef<F>,
impl<Ls, A, B, C, D, E, F, G> LensRef<(A, B, C, D, E, F, G)> for _6<Ls> where
Ls: LensRef<G>,
[src]
Ls: LensRef<G>,
impl<T> LensRef<T> for __
[src]
impl<T, Ls> LensRef<[T]> for _ix<usize, Ls> where
Ls: LensRef<T>,
[src]
Ls: LensRef<T>,
impl<T, Ls> LensRef<[T]> for _ix<Range<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<[T]> for _ix<RangeFrom<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<[T]> for _ix<RangeFull, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<[T]> for _ix<RangeTo<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<VecDeque<T>> for _ix<usize, Ls> where
Ls: LensRef<T>,
[src]
Ls: LensRef<T>,
impl<T, Ls> LensRef<Vec<T, Global>> for _ix<usize, Ls> where
Ls: LensRef<T>,
[src]
Ls: LensRef<T>,
impl<T, Ls> LensRef<Vec<T, Global>> for _ix<Range<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<Vec<T, Global>> for _ix<RangeFrom<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<Vec<T, Global>> for _ix<RangeFull, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls> LensRef<Vec<T, Global>> for _ix<RangeTo<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls, const N: usize> LensRef<[T; N]> for _ix<usize, Ls> where
Ls: LensRef<T>,
[src]
Ls: LensRef<T>,
impl<T, Ls, const N: usize> LensRef<[T; N]> for _ix<Range<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls, const N: usize> LensRef<[T; N]> for _ix<RangeFrom<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls, const N: usize> LensRef<[T; N]> for _ix<RangeFull, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T, Ls, const N: usize> LensRef<[T; N]> for _ix<RangeTo<usize>, Ls> where
Ls: LensRef<[T]>,
[src]
Ls: LensRef<[T]>,
impl<T: ?Sized, Ls> LensRef<Box<T, Global>> for _box<Ls> where
Ls: LensRef<<Box<T> as Deref>::Target>,
[src]
Ls: LensRef<<Box<T> as Deref>::Target>,
impl<T: ?Sized, Ls> LensRef<Rc<T>> for _arc<Ls> where
Ls: LensRef<<Rc<T> as Deref>::Target>,
[src]
Ls: LensRef<<Rc<T> as Deref>::Target>,
impl<T: ?Sized, Ls> LensRef<Rc<T>> for _rc<Ls> where
Ls: LensRef<<Rc<T> as Deref>::Target>,
[src]
Ls: LensRef<<Rc<T> as Deref>::Target>,