The following RxQueryBuilder methods all result in compiler warnings about utilizing deprecated constructs. Frankly I would recommend removing these and replacing them with their IObservable duals. (SingleAsync, SingleOrDefaultAsync, FirstAsync, etc.) as the blocking methods are deadlock prone.
member .ExactlyOne (s:IObservable<_>) = s.Single()
member _.ExactlyOneOrDefault (s:IObservable<>) = s.SingleOrDefault()
member .Find (s:IObservable<_>, [] predicate : -> bool) = s.First(new Func<,bool>(predicate))
member .Head (s:IObservable<_>) = s.First()
member _.HeadOrDefault (s:IObservable<>) = s.FirstOrDefault()
member .Last (s:IObservable<_>) = s.Last()
member _.LastOrDefault (s:IObservable<>) = s.LastOrDefault()
The following RxQueryBuilder methods all result in compiler warnings about utilizing deprecated constructs. Frankly I would recommend removing these and replacing them with their IObservable duals. (SingleAsync, SingleOrDefaultAsync, FirstAsync, etc.) as the blocking methods are deadlock prone.
member .ExactlyOne (s:IObservable<_>) = s.Single() member _.ExactlyOneOrDefault (s:IObservable<>) = s.SingleOrDefault() member .Find (s:IObservable<_>, [] predicate : -> bool) = s.First(new Func<,bool>(predicate))
member .Head (s:IObservable<_>) = s.First()
member _.HeadOrDefault (s:IObservable<>) = s.FirstOrDefault()
member .Last (s:IObservable<_>) = s.Last()
member _.LastOrDefault (s:IObservable<>) = s.LastOrDefault()