yew_side_effect/
collections.rs1use std::ops::Deref;
2use std::rc::Rc;
3
4#[derive(Debug)]
8pub struct SideEffects<T> {
9 inner: Vec<Rc<T>>,
10}
11
12impl<T> Deref for SideEffects<T> {
13 type Target = [Rc<T>];
14
15 fn deref(&self) -> &Self::Target {
16 &*self.inner
17 }
18}
19
20impl<T> SideEffects<T> {
21 pub(crate) fn new(from: Vec<Rc<T>>) -> Self {
22 Self { inner: from }
23 }
24}
25
26impl<T> Clone for SideEffects<T> {
27 fn clone(&self) -> Self {
28 Self {
29 inner: self.inner.clone(),
30 }
31 }
32}
33
34impl<T> Default for SideEffects<T> {
35 fn default() -> Self {
36 Self { inner: Vec::new() }
37 }
38}
39
40impl<T: PartialEq> PartialEq for SideEffects<T> {
41 fn eq(&self, other: &Self) -> bool {
42 self.inner == other.inner
43 }
44}