public static void SyncReadOnly <TSource, TTarget>(this IValueMonitor <TTarget> valueMonitor, IValueObservable <TSource> ob, Func <TSource, TTarget> convertToTarget) { valueMonitor.Observe(ob.Select(convertToTarget), convertToTarget(ob.Value)); }
public static void Sync <TSource, TTarget>(this IValueMonitor <TTarget> valueMonitor, IValueObservable <TSource> ob, Func <TSource, TTarget> convertToTarget, Func <TTarget, TSource> convertToSource) { valueMonitor.Observe(ob.Select(convertToTarget), convertToTarget(ob.Value), x => { ob.Value = convertToSource(x); }); }
public static IObservable <Unit> toEventSource <A>(this IValueObservable <A> o) { return(o.toEventSource(_ => F.unit)); }
/** * Convert IValueObservable<A> to IObservable<B>. * * Useful for converting from RxVal to event source. For example * ```someRxVal.map(_ => F.unit)``` would only emit one event, because * the backing value would still be IValueObservable. * * Thus we'd need to use ```someRxVal.toEventSource(_ => F.unit)```. **/ public static IObservable <B> toEventSource <A, B>( this IValueObservable <A> o, Fn <A, B> mapper ) { return(new Observable <B>(obs => o.subscribe(v => obs.push(mapper(v))))); }
public static void Sync <T>(this IValueMonitor <T> valueMonitor, IValueObservable <T> ob) { valueMonitor.Observe(ob, ob.Value, x => { ob.Value = x; }); }