midio_ui/observables/observable_collection

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]