pub struct Reference<T>{ /* private fields */ }
Expand description
Reference to a Variable, Computation… Allows to change an input to a computation.
let v1: Variable<i32> = 1.into();
let v2: Variable<i32> = 2.into();
let mut ref1 = Reference::<i32>::new(&v1);
// `c1` is initialized to use `v1` as input.
let c1 = Computation::<i32>::new(|(x,)| *x, (&ref1,));
println!("{} == 1", *c1.read_result());
// After this call `c1` will use `v2` as input.
ref1.replace(&v2);
println!("{} == 2", *c1.read_result());
Implementations§
Source§impl<T> Reference<T>
impl<T> Reference<T>
Sourcepub fn new<TVar>(tvar: &TVar) -> Selfwhere
TVar: ComputationInputInterface<Type = T>,
for<'a> <<TVar as ComputationInputInterface>::InputReaderType as InputReader<T>>::InputGuard<'a>: Deref<Target = T>,
pub fn new<TVar>(tvar: &TVar) -> Selfwhere
TVar: ComputationInputInterface<Type = T>,
for<'a> <<TVar as ComputationInputInterface>::InputReaderType as InputReader<T>>::InputGuard<'a>: Deref<Target = T>,
Create a new reference with the given formula.
Sourcepub fn read_value<'a>(&'a self) -> impl Deref<Target = T> + 'a
pub fn read_value<'a>(&'a self) -> impl Deref<Target = T> + 'a
Get the result of the referenced variable.
Trait Implementations§
Source§impl<T> PartialOrd<T> for Reference<T>
impl<T> PartialOrd<T> for Reference<T>
Auto Trait Implementations§
impl<T> Freeze for Reference<T>
impl<T> RefUnwindSafe for Reference<T>
impl<T> Send for Reference<T>
impl<T> Sync for Reference<T>
impl<T> Unpin for Reference<T>
impl<T> UnwindSafe for Reference<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more