ndarray/
argument_traits.rs1use std::cell::Cell;
2use std::mem::MaybeUninit;
3
4use crate::math_cell::MathCell;
5
6pub trait AssignElem<T>
8{
9 fn assign_elem(self, input: T);
11}
12
13impl<'a, T> AssignElem<T> for &'a mut T
15{
16 fn assign_elem(self, input: T)
17 {
18 *self = input;
19 }
20}
21
22impl<'a, T> AssignElem<T> for &'a Cell<T>
24{
25 fn assign_elem(self, input: T)
26 {
27 self.set(input);
28 }
29}
30
31impl<'a, T> AssignElem<T> for &'a MathCell<T>
33{
34 fn assign_elem(self, input: T)
35 {
36 self.set(input);
37 }
38}
39
40impl<'a, T> AssignElem<T> for &'a mut MaybeUninit<T>
43{
44 fn assign_elem(self, input: T)
45 {
46 *self = MaybeUninit::new(input);
47 }
48}