@@ -31,9 +31,9 @@ public Transformer(IObservable<IChangeSet<TSource>> source, Func<TSource, Option
3131 _containerFactory = ( item , prev , index ) => new TransformedItemContainer ( item , factory ( item , prev , index ) ) ;
3232 }
3333
34- public IObservable < IChangeSet < TDestination > > Run ( )
35- {
36- return _source . Scan ( new ChangeAwareList < TransformedItemContainer > ( ) , ( state , changes ) =>
34+ public IObservable < IChangeSet < TDestination > > Run ( ) => Observable . Defer ( RunImpl ) ;
35+
36+ private IObservable < IChangeSet < TDestination > > RunImpl ( ) => _source . Scan ( new ChangeAwareList < TransformedItemContainer > ( ) , ( state , changes ) =>
3737 {
3838 Transform ( state , changes ) ;
3939 return state ;
@@ -43,7 +43,6 @@ public IObservable<IChangeSet<TDestination>> Run()
4343 var changed = transformed . CaptureChanges ( ) ;
4444 return changed . Transform ( container => container . Destination ) ;
4545 } ) ;
46- }
4746
4847 private void Transform ( ChangeAwareList < TransformedItemContainer > transformed , IChangeSet < TSource > changes )
4948 {
@@ -125,7 +124,7 @@ private void Transform(ChangeAwareList<TransformedItemContainer> transformed, IC
125124 }
126125 else
127126 {
128- TransformedItemContainer ? toRemove = transformed . FirstOrDefault ( t => ReferenceEquals ( t . Source , change . Current ) ) ;
127+ var toRemove = transformed . FirstOrDefault ( t => ReferenceEquals ( t . Source , change . Current ) ) ;
129128
130129 if ( toRemove is not null )
131130 {
@@ -188,15 +187,9 @@ public TransformedItemContainer(TSource source, TDestination destination)
188187
189188 public TSource Source { get ; }
190189
191- public static bool operator == ( TransformedItemContainer left , TransformedItemContainer right )
192- {
193- return Equals ( left , right ) ;
194- }
190+ public static bool operator == ( TransformedItemContainer left , TransformedItemContainer right ) => Equals ( left , right ) ;
195191
196- public static bool operator != ( TransformedItemContainer left , TransformedItemContainer right )
197- {
198- return ! Equals ( left , right ) ;
199- }
192+ public static bool operator != ( TransformedItemContainer left , TransformedItemContainer right ) => ! Equals ( left , right ) ;
200193
201194 public bool Equals ( TransformedItemContainer ? other )
202195 {
@@ -233,9 +226,6 @@ public override bool Equals(object? obj)
233226 return Equals ( ( TransformedItemContainer ) obj ) ;
234227 }
235228
236- public override int GetHashCode ( )
237- {
238- return Source is null ? 0 : EqualityComparer < TSource > . Default . GetHashCode ( Source ) ;
239- }
229+ public override int GetHashCode ( ) => Source is null ? 0 : EqualityComparer < TSource > . Default . GetHashCode ( Source ) ;
240230 }
241231}
0 commit comments