manifest/state/
dynamic_account.rs

1#[derive(Clone)]
2pub struct DynamicAccount<Fixed, Dynamic> {
3    pub fixed: Fixed,
4    pub dynamic: Dynamic,
5}
6
7pub trait DerefOrBorrow<T: ?Sized> {
8    fn deref_or_borrow(&self) -> &T;
9}
10
11impl<T: ?Sized> DerefOrBorrow<T> for T {
12    fn deref_or_borrow(&self) -> &T {
13        self
14    }
15}
16
17impl<T: ?Sized> DerefOrBorrow<T> for &T {
18    fn deref_or_borrow(&self) -> &T {
19        self
20    }
21}
22
23impl<T: ?Sized> DerefOrBorrow<T> for &mut T {
24    fn deref_or_borrow(&self) -> &T {
25        self
26    }
27}
28
29impl<T: Sized> DerefOrBorrow<[T]> for Vec<T> {
30    fn deref_or_borrow(&self) -> &[T] {
31        self
32    }
33}
34
35pub trait DerefOrBorrowMut<T: ?Sized> {
36    fn deref_or_borrow_mut(&mut self) -> &mut T;
37}
38
39impl<T: ?Sized> DerefOrBorrowMut<T> for &mut T {
40    fn deref_or_borrow_mut(&mut self) -> &mut T {
41        self
42    }
43}
44
45impl<T: ?Sized> DerefOrBorrowMut<T> for T {
46    fn deref_or_borrow_mut(&mut self) -> &mut T {
47        self
48    }
49}
50
51impl<T: Sized> DerefOrBorrowMut<[T]> for Vec<T> {
52    fn deref_or_borrow_mut(&mut self) -> &mut [T] {
53        self
54    }
55}