A game about forced loneliness, made by TACStudios
1using System; 2 3namespace UnityEngine.InputSystem.LowLevel 4{ 5 internal class SelectObservable<TSource, TResult> : IObservable<TResult> 6 { 7 private readonly IObservable<TSource> m_Source; 8 private readonly Func<TSource, TResult> m_Filter; 9 10 public SelectObservable(IObservable<TSource> source, Func<TSource, TResult> filter) 11 { 12 m_Source = source; 13 m_Filter = filter; 14 } 15 16 public IDisposable Subscribe(IObserver<TResult> observer) 17 { 18 return m_Source.Subscribe(new Select(this, observer)); 19 } 20 21 private class Select : IObserver<TSource> 22 { 23 private SelectObservable<TSource, TResult> m_Observable; 24 private readonly IObserver<TResult> m_Observer; 25 26 public Select(SelectObservable<TSource, TResult> observable, IObserver<TResult> observer) 27 { 28 m_Observable = observable; 29 m_Observer = observer; 30 } 31 32 public void OnCompleted() 33 { 34 } 35 36 public void OnError(Exception error) 37 { 38 Debug.LogException(error); 39 } 40 41 public void OnNext(TSource evt) 42 { 43 var result = m_Observable.m_Filter(evt); 44 m_Observer.OnNext(result); 45 } 46 } 47 } 48}