Types
AddedSubscriber[T] = (T) -> void
RemovedSubscriber[T] = (T) -> void
ObservableCollection[T] = (AddedSubscriber[T], RemovedSubscriber[T]) -> void
CollectionSubject[T] = ref object source*: ObservableCollection[T] values*: seq[T] addedSubscribers: seq[AddedSubscriber[T]] removedSubscribers: seq[RemovedSubscriber[T]]
Procs
proc observableCollection[T](values: seq[T] = @[]): CollectionSubject[T]
proc add[T](self: CollectionSubject[T]; item: T): void
proc remove[T](self: CollectionSubject[T]; item: T): void
proc map[T, R](self: ObservableCollection[T]; mapper: (T) -> R): ObservableCollection[R]
proc observableCollection[T](source: ObservableCollection[T]): CollectionSubject[T]
proc combineLatest[A, B, R](a: ObservableCollection[A]; b: ObservableCollection[B]; mapper: (A, B) -> R): ObservableCollection[R]
Templates
template map[T; R](self: CollectionSubject[T]; mapper: (T) -> R): ObservableCollection[R]