experimental_reactive/func.rs
1use reactive::*;
2use std::marker::PhantomData;
3
4pub struct FunctionSource<T, F>(F, PhantomData<T>) where F: Fn()->T;
5
6impl<T, F> FunctionSource<T, F> where F: Fn()->T {
7 pub fn new(f: F) -> Self { FunctionSource(f, PhantomData) }
8}
9
10impl<T, F> Source<T> for FunctionSource<T, F> where F: Fn()->T {
11 fn pull(&self) -> Result<T, SourceError> { Ok(self.0()) }
12}