From bbe7239292abafc27db7a1ffa5ebcff41c6cd5e0 Mon Sep 17 00:00:00 2001 From: lempiji Date: Sun, 10 Feb 2019 00:24:35 +0900 Subject: [PATCH] Update docs --- README.md | 23 +- docs.json | 3776 ++++++++++------- docs/file_hashes.json | 2 +- docs/index.html | 99 +- docs/rx/algorithm/all.html | 38 +- docs/rx/algorithm/all/all.all.html | 38 +- docs/rx/algorithm/all/all.html | 38 +- docs/rx/algorithm/any.html | 38 +- docs/rx/algorithm/any/any.any.html | 38 +- docs/rx/algorithm/any/any.html | 38 +- docs/rx/algorithm/buffer.html | 38 +- docs/rx/algorithm/buffer/buffered.html | 38 +- docs/rx/algorithm/combineLatest.html | 38 +- .../combineLatest.combineLatest.html | 38 +- .../combineLatest/combineLatest.html | 38 +- docs/rx/algorithm/debounce.html | 207 + docs/rx/algorithm/debounce/debounce.html | 254 ++ docs/rx/algorithm/filter.html | 38 +- docs/rx/algorithm/filter/filter.filter.html | 38 +- docs/rx/algorithm/filter/filter.html | 38 +- docs/rx/algorithm/fold.html | 38 +- docs/rx/algorithm/fold/fold.html | 38 +- docs/rx/algorithm/groupby.html | 38 +- .../algorithm/groupby/GroupedObservable.html | 38 +- .../rx/algorithm/groupby/groupBy.groupBy.html | 38 +- docs/rx/algorithm/groupby/groupBy.html | 38 +- docs/rx/algorithm/map.html | 38 +- docs/rx/algorithm/map/map.html | 38 +- docs/rx/algorithm/map/map.map.html | 38 +- docs/rx/algorithm/merge.html | 38 +- docs/rx/algorithm/merge/merge.html | 38 +- docs/rx/algorithm/scan.html | 38 +- docs/rx/algorithm/scan/scan.html | 38 +- docs/rx/algorithm/scan/scan.scan.html | 38 +- docs/rx/algorithm/tee.html | 38 +- docs/rx/algorithm/tee/tee.html | 38 +- docs/rx/algorithm/tee/tee.tee.html | 38 +- docs/rx/algorithm/uniq.html | 222 + .../algorithm/uniq/distinctUntilChanged.html | 264 ++ docs/rx/algorithm/uniq/uniq.html | 278 ++ docs/rx/algorithm/uniq/uniq.uniq.html | 194 + docs/rx/disposable.html | 38 +- .../AnonymousDisposable.dispose.html | 38 +- docs/rx/disposable/AnonymousDisposable.html | 38 +- .../disposable/AnonymousDisposable.this.html | 38 +- docs/rx/disposable/Cancelable.html | 38 +- docs/rx/disposable/Cancelable.isDisposed.html | 38 +- docs/rx/disposable/CancelableObject.html | 38 +- .../CancelableObject.isDisposed.html | 38 +- docs/rx/disposable/CancelableObject.this.html | 38 +- .../disposable/CancellationToken.cancel.html | 38 +- .../disposable/CancellationToken.dispose.html | 38 +- docs/rx/disposable/CancellationToken.html | 38 +- .../CancellationToken.isCanceled.html | 38 +- .../CancellationToken.isDisposed.html | 38 +- .../CompositeDisposable.dispose.html | 38 +- docs/rx/disposable/CompositeDisposable.html | 38 +- .../disposable/CompositeDisposable.this.html | 38 +- docs/rx/disposable/Disposable.dispose.html | 38 +- docs/rx/disposable/Disposable.html | 38 +- .../disposable/DisposableObject.dispose.html | 38 +- docs/rx/disposable/DisposableObject.this.html | 38 +- docs/rx/disposable/NopDisposable.html | 38 +- .../rx/disposable/NopDisposable.instance.html | 38 +- .../RefCountDisposable.dispose.html | 38 +- .../RefCountDisposable.getDisposable.html | 38 +- docs/rx/disposable/RefCountDisposable.html | 38 +- .../disposable/RefCountDisposable.this.html | 38 +- .../SerialDisposable.disposable.html | 38 +- .../disposable/SerialDisposable.dispose.html | 38 +- docs/rx/disposable/SerialDisposable.html | 38 +- .../SerialDisposable.isDisposed.html | 38 +- .../disposable/SignalDisposable.dispose.html | 38 +- docs/rx/disposable/SignalDisposable.html | 40 +- .../disposable/SignalDisposable.signal.html | 40 +- .../SingleAssignmentDisposable.dispose.html | 38 +- .../SingleAssignmentDisposable.html | 38 +- ...SingleAssignmentDisposable.isDisposed.html | 38 +- ...gleAssignmentDisposable.setDisposable.html | 38 +- docs/rx/disposable/disposableObject.html | 102 +- docs/rx/disposable/isCancelable.html | 38 +- docs/rx/disposable/isDisposable.html | 38 +- docs/rx/disposable/withDisposed.html | 38 +- .../disposable/withDisposed.withDisposed.html | 38 +- docs/rx/observable.html | 38 +- docs/rx/observable/Observable.html | 38 +- docs/rx/observable/ObservableObject.html | 82 +- docs/rx/observable/asObservable.html | 38 +- docs/rx/observable/defer.html | 38 +- docs/rx/observable/doSubscribe.html | 38 +- docs/rx/observable/empty.html | 38 +- docs/rx/observable/error.html | 38 +- docs/rx/observable/from.html | 38 +- docs/rx/observable/isObservable.html | 38 +- docs/rx/observable/isSubscribable.html | 38 +- docs/rx/observable/never.html | 38 +- .../observableObject.observableObject.html | 38 +- docs/rx/observer.html | 38 +- docs/rx/observer/CompositeObserver.add.html | 38 +- .../observer/CompositeObserver.completed.html | 38 +- docs/rx/observer/CompositeObserver.empty.html | 38 +- .../observer/CompositeObserver.failure.html | 38 +- docs/rx/observer/CompositeObserver.html | 38 +- docs/rx/observer/CompositeObserver.put.html | 38 +- .../rx/observer/CompositeObserver.remove.html | 38 +- docs/rx/observer/DoneObserver.html | 38 +- docs/rx/observer/NopObserver.html | 38 +- docs/rx/observer/NopObserver.instance.html | 38 +- docs/rx/observer/Observer.completed.html | 38 +- docs/rx/observer/Observer.failure.html | 38 +- docs/rx/observer/Observer.html | 38 +- .../rx/observer/ObserverObject.completed.html | 38 +- docs/rx/observer/ObserverObject.failure.html | 38 +- docs/rx/observer/ObserverObject.html | 38 +- docs/rx/observer/hasCompleted.html | 38 +- docs/rx/observer/hasFailure.html | 38 +- docs/rx/observer/isObserver.html | 38 +- docs/rx/observer/makeObserver.html | 38 +- .../observerObject.observerObject.html | 38 +- docs/rx/range/drop.html | 201 + docs/rx/range/drop/drop.html | 226 + docs/rx/range/take.html | 201 + docs/rx/range/take/take.html | 216 + docs/rx/range/takeLast.html | 201 + docs/rx/range/takeLast/takeLast.html | 232 + docs/rx/scheduler.html | 330 ++ docs/rx/scheduler/AsyncScheduler.html | 191 + docs/rx/scheduler/LocalScheduler.html | 191 + docs/rx/scheduler/ObserveOnObservable.html | 190 + docs/rx/scheduler/ObserveOnObserver.html | 190 + docs/rx/scheduler/Scheduler.html | 190 + docs/rx/scheduler/SubscribeOnObservable.html | 190 + docs/rx/scheduler/TaskPoolScheduler.html | 191 + docs/rx/scheduler/ThreadScheduler.html | 191 + docs/rx/scheduler/currentScheduler.html | 217 + docs/rx/scheduler/historicalScheduler.html | 190 + docs/rx/scheduler/observeOn.html | 220 + docs/rx/scheduler/subscribeOn.html | 238 ++ docs/rx/subject.html | 38 +- docs/rx/subject/AsyncSubject.completed.html | 38 +- docs/rx/subject/AsyncSubject.failure.html | 38 +- docs/rx/subject/AsyncSubject.html | 38 +- docs/rx/subject/AsyncSubject.put.html | 38 +- docs/rx/subject/AsyncSubject.subscribe.html | 38 +- docs/rx/subject/AsyncSubject.unsubscribe.html | 38 +- .../rx/subject/BehaviorSubject.completed.html | 38 +- docs/rx/subject/BehaviorSubject.failure.html | 38 +- docs/rx/subject/BehaviorSubject.html | 38 +- docs/rx/subject/BehaviorSubject.put.html | 38 +- .../rx/subject/BehaviorSubject.subscribe.html | 38 +- docs/rx/subject/BehaviorSubject.this.html | 38 +- docs/rx/subject/BehaviorSubject.value.html | 38 +- docs/rx/subject/Subject.html | 38 +- docs/rx/subject/SubjectObject.completed.html | 38 +- docs/rx/subject/SubjectObject.failure.html | 38 +- docs/rx/subject/SubjectObject.html | 38 +- docs/rx/subject/SubjectObject.put.html | 38 +- docs/rx/subject/SubjectObject.subscribe.html | 38 +- docs/rx/subject/SubjectObject.this.html | 38 +- .../rx/subject/SubjectObject.unsubscribe.html | 38 +- docs/rx/{range.html => util.html} | 155 +- docs/rx/util/AtomicCounter.html | 252 ++ docs/rx/util/AtomicCounter.isZero.html | 189 + docs/rx/util/AtomicCounter.this.html | 194 + docs/rx/util/AtomicCounter.tryDecrement.html | 189 + docs/rx/util/AtomicCounter.trySetZero.html | 189 + .../rx/util/AtomicCounter.tryUpdateCount.html | 189 + docs/rx/util/EventSignal.html | 252 ++ docs/rx/util/EventSignal.setSignal.html | 189 + docs/rx/util/EventSignal.signal.html | 189 + docs/rx/util/EventSignal.this.html | 189 + docs/rx/util/EventSignal.wait.html | 189 + docs/rx/util/Ticket.html | 199 + docs/rx/util/TicketBase.html | 220 + docs/rx/util/TicketBase.isStamped.html | 189 + docs/rx/util/TicketBase.stamp.html | 189 + docs/rx/util/assumeThreadLocal.html | 239 ++ docs/rx/util/exchange.html | 204 + docs/sitemap.xml | 48 +- docs/symbols.js | 45 +- dub.json | 18 +- source/rx/algorithm/debounce.d | 3 + source/rx/algorithm/uniq.d | 5 + source/rx/range/drop.d | 4 + source/rx/range/package.d | 3 - source/rx/range/take.d | 6 +- source/rx/range/takeLast.d | 4 + source/rx/scheduler.d | 9 + source/rx/util.d | 25 + 189 files changed, 16316 insertions(+), 1864 deletions(-) create mode 100644 docs/rx/algorithm/debounce.html create mode 100644 docs/rx/algorithm/debounce/debounce.html create mode 100644 docs/rx/algorithm/uniq.html create mode 100644 docs/rx/algorithm/uniq/distinctUntilChanged.html create mode 100644 docs/rx/algorithm/uniq/uniq.html create mode 100644 docs/rx/algorithm/uniq/uniq.uniq.html create mode 100644 docs/rx/range/drop.html create mode 100644 docs/rx/range/drop/drop.html create mode 100644 docs/rx/range/take.html create mode 100644 docs/rx/range/take/take.html create mode 100644 docs/rx/range/takeLast.html create mode 100644 docs/rx/range/takeLast/takeLast.html create mode 100644 docs/rx/scheduler.html create mode 100644 docs/rx/scheduler/AsyncScheduler.html create mode 100644 docs/rx/scheduler/LocalScheduler.html create mode 100644 docs/rx/scheduler/ObserveOnObservable.html create mode 100644 docs/rx/scheduler/ObserveOnObserver.html create mode 100644 docs/rx/scheduler/Scheduler.html create mode 100644 docs/rx/scheduler/SubscribeOnObservable.html create mode 100644 docs/rx/scheduler/TaskPoolScheduler.html create mode 100644 docs/rx/scheduler/ThreadScheduler.html create mode 100644 docs/rx/scheduler/currentScheduler.html create mode 100644 docs/rx/scheduler/historicalScheduler.html create mode 100644 docs/rx/scheduler/observeOn.html create mode 100644 docs/rx/scheduler/subscribeOn.html rename docs/rx/{range.html => util.html} (51%) create mode 100644 docs/rx/util/AtomicCounter.html create mode 100644 docs/rx/util/AtomicCounter.isZero.html create mode 100644 docs/rx/util/AtomicCounter.this.html create mode 100644 docs/rx/util/AtomicCounter.tryDecrement.html create mode 100644 docs/rx/util/AtomicCounter.trySetZero.html create mode 100644 docs/rx/util/AtomicCounter.tryUpdateCount.html create mode 100644 docs/rx/util/EventSignal.html create mode 100644 docs/rx/util/EventSignal.setSignal.html create mode 100644 docs/rx/util/EventSignal.signal.html create mode 100644 docs/rx/util/EventSignal.this.html create mode 100644 docs/rx/util/EventSignal.wait.html create mode 100644 docs/rx/util/Ticket.html create mode 100644 docs/rx/util/TicketBase.html create mode 100644 docs/rx/util/TicketBase.isStamped.html create mode 100644 docs/rx/util/TicketBase.stamp.html create mode 100644 docs/rx/util/assumeThreadLocal.html create mode 100644 docs/rx/util/exchange.html diff --git a/README.md b/README.md index 3750596..77cc607 100644 --- a/README.md +++ b/README.md @@ -103,13 +103,30 @@ Issue and PullRequest are welcome! :smiley: Refer to [CONTRIBUTING.md](/CONTRIBUTING.md) for details. +### Development + +#### Build and unittest + +```bash +git clone https://github.com/lempiji/rx +cd rx +dub test +``` + +#### Update documents + +```bash +dub build -c ddox +``` + + ### Future work - generic observable factory - - create, start, timer, interval + - create, start, timer, interval - more subjects - - publish, replay + - publish, replay - more algorithms - - window, zip + - window, zip - more test - more documents diff --git a/docs.json b/docs.json index 7050125..d8bcb7f 100644 --- a/docs.json +++ b/docs.json @@ -1,3038 +1,3520 @@ [ { + "kind": "module", "file": "source\\rx\\algorithm\\all.d", - "name": "rx.algorithm.all", "members": [ { + "parameters": [ + { + "kind": "alias", + "defaultAlias": "\"true\"", + "name": "pred" + } + ], + "line": 412, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 414, + "kind": "template", + "char": 39, "members": [ { - "endchar": 5, - "name": "all", - "line": 414, - "type": "AllObservable!(TObservable, pred)(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 417, + "line": 414, + "kind": "function", "char": 39, - "kind": "function" - } - ], - "name": "all", - "line": 414, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "name": "all", + "type": "AllObservable!(TObservable, pred)(auto ref TObservable observable)", + "endchar": 5, + "endline": 417 } ], - "char": 39, - "kind": "template" + "name": "all" } ], "name": "all", - "line": 412, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L420_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.all!\"a % 2 == 0\"().doSubscribe((bool res) { result = res; });\n\nsub.put(0);\nsub.completed();\nassert(result);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L420_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L420_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.all!\"a % 2 == 0\"().doSubscribe((bool res) { result = res; });\n\nsub.put(0);\nsub.completed();\nassert(result);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L420_C1)\n" + }, + { "parameters": [ { - "name": "pred", - "defaultAlias": "\"true\"", - "kind": "alias" + "kind": "type", + "name": "TObservable" } ], - "char": 1, - "kind": "template" - }, - { + "line": 449, + "kind": "template", + "char": 27, "members": [ { - "endchar": 1, - "name": "all", - "line": 449, - "type": "AllObservable!TObservable(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 452, + "line": 449, + "kind": "function", "char": 27, - "kind": "function" + "name": "all", + "type": "AllObservable!TObservable(auto ref TObservable observable)", + "endchar": 1, + "endline": 452 } ], "name": "all", - "line": 449, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L454_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.all().doSubscribe((bool res) { result = res; });\n\nsub.put(0);\nsub.completed();\nassert(result);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L454_C1)\n", - "parameters": [ - { - "name": "TObservable", - "kind": "type" - } - ], - "char": 27, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L454_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.all().doSubscribe((bool res) { result = res; });\n\nsub.put(0);\nsub.completed();\nassert(result);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L454_C1)\n" } ], "comment": " This module defines algorithm 'all'\n", - "kind": "module" + "name": "rx.algorithm.all" }, { + "kind": "module", "file": "source\\rx\\algorithm\\any.d", - "name": "rx.algorithm.any", "members": [ { + "parameters": [ + { + "kind": "alias", + "defaultAlias": "\"true\"", + "name": "pred" + } + ], + "line": 305, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 307, + "kind": "template", + "char": 39, "members": [ { - "endchar": 5, - "name": "any", - "line": 307, - "type": "AnyObservable!(TObservable, pred)(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 310, + "line": 307, + "kind": "function", "char": 39, - "kind": "function" - } - ], - "name": "any", - "line": 307, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "name": "any", + "type": "AnyObservable!(TObservable, pred)(auto ref TObservable observable)", + "endchar": 5, + "endline": 310 } ], - "char": 39, - "kind": "template" + "name": "any" } ], "name": "any", - "line": 305, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L313_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.any!(\"a % 2 == 0\").doSubscribe((bool) { result = true; });\n\nassert(result == false);\nsub.put(1);\nassert(result == false);\nsub.put(0);\nassert(result == true);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L313_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L313_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.any!(\"a % 2 == 0\").doSubscribe((bool) { result = true; });\n\nassert(result == false);\nsub.put(1);\nassert(result == false);\nsub.put(0);\nassert(result == true);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L313_C1)\n" + }, + { "parameters": [ { - "name": "pred", - "defaultAlias": "\"true\"", - "kind": "alias" + "kind": "type", + "name": "TObservable" } ], - "char": 1, - "kind": "template" - }, - { + "line": 344, + "kind": "template", + "char": 27, "members": [ { - "endchar": 1, - "name": "any", - "line": 344, - "type": "AnyObservable!TObservable(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 347, + "line": 344, + "kind": "function", "char": 27, - "kind": "function" + "name": "any", + "type": "AnyObservable!TObservable(auto ref TObservable observable)", + "endchar": 1, + "endline": 347 } ], "name": "any", - "line": 344, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L349_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.any().doSubscribe((bool) { result = true; });\n\nassert(result == false);\nsub.put(1);\nassert(result == true);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L349_C1)\n", - "parameters": [ - { - "name": "TObservable", - "kind": "type" - } - ], - "char": 27, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L349_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nbool result = false;\nsub.any().doSubscribe((bool) { result = true; });\n\nassert(result == false);\nsub.put(1);\nassert(result == true);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L349_C1)\n" } ], "comment": " This module defines algorithm 'any'\n", - "kind": "module" + "name": "rx.algorithm.any" }, { + "kind": "module", "file": "source\\rx\\algorithm\\buffer.d", - "name": "rx.algorithm.buffer", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 149, + "kind": "template", + "char": 34, "members": [ { - "endchar": 1, - "name": "buffered", - "line": 149, - "type": "BufferedObservable!TObservable(auto ref TObservable observable, size_t bufferSize)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "bufferSize", - "type": "size_t" + "type": "size_t", + "name": "bufferSize" } ], - "endline": 153, + "line": 149, + "kind": "function", "char": 34, - "kind": "function" + "name": "buffered", + "type": "BufferedObservable!TObservable(auto ref TObservable observable, size_t bufferSize)", + "endchar": 1, + "endline": 153 } ], "name": "buffered", - "line": 149, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L156_C1)\n---\nimport rx.subject : SubjectObject;\nimport std.array : appender;\n\nauto sub = new SubjectObject!int;\nauto buf = appender!(int[]);\n\nauto d = sub.buffered(2).doSubscribe(buf);\n\nsub.put(0);\nsub.put(1);\nassert(buf.data.length == 2);\nassert(buf.data[0] == 0);\nassert(buf.data[1] == 1);\nsub.put(2);\nassert(buf.data.length == 2);\nsub.completed();\nassert(buf.data.length == 3);\nassert(buf.data[2] == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L156_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L179_C1)\n---\nimport rx.subject : SubjectObject;\nimport std.array : appender;\nimport std.parallelism : taskPool, task;\n\nauto sub = new SubjectObject!int;\nauto buf = appender!(int[]);\nauto d = sub.buffered(100).doSubscribe(buf);\n\nimport std.range : iota;\n\nauto t1 = task({ .put(sub, iota(100)); });\nauto t2 = task({ .put(sub, iota(100)); });\nauto t3 = task({ .put(sub, iota(100)); });\ntaskPool.put(t1);\ntaskPool.put(t2);\ntaskPool.put(t3);\n\nt1.workForce;\nt2.workForce;\nt3.workForce;\n\nsub.completed();\n\nassert(buf.data.length == 300);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L179_C1)\n", - "parameters": [ - { - "name": "TObservable", - "kind": "type" - } - ], - "char": 34, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L156_C1)\n---\nimport rx.subject : SubjectObject;\nimport std.array : appender;\n\nauto sub = new SubjectObject!int;\nauto buf = appender!(int[]);\n\nauto d = sub.buffered(2).doSubscribe(buf);\n\nsub.put(0);\nsub.put(1);\nassert(buf.data.length == 2);\nassert(buf.data[0] == 0);\nassert(buf.data[1] == 1);\nsub.put(2);\nassert(buf.data.length == 2);\nsub.completed();\nassert(buf.data.length == 3);\nassert(buf.data[2] == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L156_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L179_C1)\n---\nimport rx.subject : SubjectObject;\nimport std.array : appender;\nimport std.parallelism : taskPool, task;\n\nauto sub = new SubjectObject!int;\nauto buf = appender!(int[]);\nauto d = sub.buffered(100).doSubscribe(buf);\n\nimport std.range : iota;\n\nauto t1 = task({ .put(sub, iota(100)); });\nauto t2 = task({ .put(sub, iota(100)); });\nauto t3 = task({ .put(sub, iota(100)); });\ntaskPool.put(t1);\ntaskPool.put(t2);\ntaskPool.put(t3);\n\nt1.workForce;\nt2.workForce;\nt3.workForce;\n\nsub.completed();\n\nassert(buf.data.length == 300);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L179_C1)\n" } ], "comment": " This module defines algorithm 'buffer'\n", - "kind": "module" + "name": "rx.algorithm.buffer" }, { + "kind": "module", "file": "source\\rx\\algorithm\\combineLatest.d", - "name": "rx.algorithm.combineLatest", "members": [ { + "parameters": [ + { + "kind": "alias", + "defaultAlias": "tuple", + "name": "f" + } + ], + "line": 16, + "kind": "template", + "char": 1, "members": [ { + "constraint": "allSatisfy!(isObservable, TObservables)", + "parameters": [ + { + "kind": "tuple", + "name": "TObservables" + } + ], + "line": 18, + "kind": "template", + "char": 47, "members": [ { - "endchar": 5, - "name": "combineLatest", - "line": 18, - "type": "CombineLatestObservable!(f, TObservables)(TObservables observables)", "parameters": [ { - "name": "observables", - "type": "TObservables" + "type": "TObservables", + "name": "observables" } ], - "endline": 22, + "line": 18, + "kind": "function", "char": 47, - "kind": "function" + "name": "combineLatest", + "type": "CombineLatestObservable!(f, TObservables)(TObservables observables)", + "endchar": 5, + "endline": 22 } ], - "name": "combineLatest", - "line": 18, + "name": "combineLatest" + } + ], + "name": "combineLatest", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L26_C1)\n---\nimport rx : SubjectObject, CounterObserver;\n\nauto hello = new SubjectObject!string;\nauto world = new SubjectObject!string;\n\nauto message = combineLatest!((a, b) => a ~ \", \" ~ b ~ \"!\")(hello, world);\n\nauto observer = new CounterObserver!string;\nmessage.doSubscribe(observer);\n\n.put(hello, \"Hello\");\n.put(world, \"world\");\n\nassert(observer.putCount == 1);\nassert(observer.lastValue == \"Hello, world!\");\n\n.put(world, \"D-man\");\nassert(observer.putCount == 2);\nassert(observer.lastValue == \"Hello, D-man!\");\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L26_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L50_C1)\n---\nimport rx : SubjectObject, CounterObserver, uniq;\n\nauto count1 = new SubjectObject!int;\nauto count2 = new SubjectObject!int;\nauto count3 = new SubjectObject!int;\n\nimport std.algorithm : max;\n\nalias pickMax = combineLatest!max;\nauto observable = pickMax(count1, count2, count3).uniq();\n\nauto observer = new CounterObserver!int;\nobservable.doSubscribe(observer);\n\n.put(count1, 0);\n.put(count2, 0);\n.put(count3, 0);\n\nassert(observer.putCount == 1);\nassert(observer.lastValue == 0);\n\n.put(count1, 10);\nassert(observer.putCount == 2);\nassert(observer.lastValue == 10);\n\n.put(count2, 10);\nassert(observer.putCount == 2);\n\n.put(count3, 11);\nassert(observer.putCount == 3);\nassert(observer.lastValue == 11);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L50_C1)\n" + } + ], + "comment": " This module defines algorithm 'combineLatest'\n", + "name": "rx.algorithm.combineLatest" + }, + { + "kind": "module", + "file": "source\\rx\\algorithm\\debounce.d", + "members": [ + { + "parameters": [ + { + "kind": "type", + "name": "T" + }, + { + "kind": "type", + "deco": "C2rx9scheduler14AsyncScheduler", + "name": "TScheduler" + } + ], + "line": 18, + "kind": "template", + "char": 51, + "members": [ + { "parameters": [ { - "name": "TObservables", - "kind": "tuple" + "type": "T", + "name": "observable" + }, + { + "type": "Duration", + "name": "val" + }, + { + "type": "TScheduler", + "name": "scheduler" } ], - "constraint": "allSatisfy!(isObservable, TObservables)", - "char": 47, - "kind": "template" + "line": 18, + "kind": "function", + "char": 51, + "name": "debounce", + "type": "DebounceObservable!(T, TScheduler, T.ElementType)(T observable, Duration val, TScheduler scheduler)", + "endchar": 1, + "endline": 22 } ], - "name": "combineLatest", - "line": 16, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L26_C1)\n---\nimport rx : SubjectObject, CounterObserver;\n\nauto hello = new SubjectObject!string;\nauto world = new SubjectObject!string;\n\nauto message = combineLatest!((a, b) => a ~ \", \" ~ b ~ \"!\")(hello, world);\n\nauto observer = new CounterObserver!string;\nmessage.doSubscribe(observer);\n\n.put(hello, \"Hello\");\n.put(world, \"world\");\n\nassert(observer.putCount == 1);\nassert(observer.lastValue == \"Hello, world!\");\n\n.put(world, \"D-man\");\nassert(observer.putCount == 2);\nassert(observer.lastValue == \"Hello, D-man!\");\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L26_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L50_C1)\n---\nimport rx : SubjectObject, CounterObserver, uniq;\n\nauto count1 = new SubjectObject!int;\nauto count2 = new SubjectObject!int;\nauto count3 = new SubjectObject!int;\n\nimport std.algorithm : max;\n\nalias pickMax = combineLatest!max;\nauto observable = pickMax(count1, count2, count3).uniq();\n\nauto observer = new CounterObserver!int;\nobservable.doSubscribe(observer);\n\n.put(count1, 0);\n.put(count2, 0);\n.put(count3, 0);\n\nassert(observer.putCount == 1);\nassert(observer.lastValue == 0);\n\n.put(count1, 10);\nassert(observer.putCount == 2);\nassert(observer.lastValue == 10);\n\n.put(count2, 10);\nassert(observer.putCount == 2);\n\n.put(count3, 11);\nassert(observer.putCount == 3);\nassert(observer.lastValue == 11);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L50_C1)\n", + "name": "debounce", + "comment": "\n" + }, + { "parameters": [ { - "name": "f", - "defaultAlias": "tuple", - "kind": "alias" + "kind": "type", + "name": "T" } ], - "char": 1, - "kind": "template" + "line": 24, + "kind": "template", + "char": 58, + "members": [ + { + "parameters": [ + { + "type": "T", + "name": "observable" + }, + { + "type": "Duration", + "name": "val" + } + ], + "line": 24, + "kind": "function", + "char": 58, + "name": "debounce", + "type": "DebounceObservable!(T, TaskPoolScheduler, T.ElementType)(T observable, Duration val)", + "endchar": 1, + "endline": 27 + } + ], + "name": "debounce", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L29_C1)\n---\nimport rx.subject : SubjectObject;\nimport core.thread : Thread;\nimport core.time : dur;\n\nauto obs = new SubjectObject!int;\n\nimport std.array : appender;\n\nauto buf = appender!(int[]);\nauto d = obs.debounce(dur!\"msecs\"(100), new TaskPoolScheduler).doSubscribe(buf);\nscope (exit)\n d.dispose();\n\n.put(obs, 1);\nThread.sleep(dur!\"msecs\"(200));\n.put(obs, 2);\n.put(obs, 3);\nThread.sleep(dur!\"msecs\"(200));\n\nassert(buf.data.length == 2);\nassert(buf.data[0] == 1);\nassert(buf.data[1] == 3);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L29_C1)\n" } ], - "comment": " This module defines algorithm 'combineLatest'\n", - "kind": "module" + "comment": " This module defines algorithm 'debounce'\n", + "name": "rx.algorithm.debounce" }, { + "kind": "module", "file": "source\\rx\\algorithm\\filter.d", - "name": "rx.algorithm.filter", "members": [ { + "parameters": [ + { + "kind": "alias", + "name": "pred" + } + ], + "line": 18, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 20, + "kind": "template", + "char": 10, "members": [ { - "endchar": 5, - "name": "filter", - "line": 20, - "type": "(auto ref TObservable observable)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 82, - "char": 10, + "line": 20, "kind": "function", - "storageClass": [ - "auto" - ] - } - ], - "name": "filter", - "line": 20, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "char": 10, + "name": "filter", + "type": "(auto ref TObservable observable)", + "endchar": 5, + "endline": 82 } ], - "char": 10, - "kind": "template" + "name": "filter" } ], "name": "filter", - "line": 18, - "comment": "Implements the higher order filter function. The predicate is passed to std.functional.unaryFun, and can either accept a string, or any callable that can be executed via pred(element).\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L86_C1)\n---\nimport rx.subject : Subject, SubjectObject;\nimport std.array : appender;\n\nSubject!int sub = new SubjectObject!int;\nauto filtered = sub.filter!(n => n % 2 == 0);\nauto buffer = appender!(int[])();\nauto disposable = filtered.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\nsub.put(3);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [0, 2][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L86_C1)\n", - "parameters": [ - { - "name": "pred", - "kind": "alias" - } - ], - "char": 1, - "kind": "template" + "comment": "Implements the higher order filter function. The predicate is passed to std.functional.unaryFun, and can either accept a string, or any callable that can be executed via pred(element).\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L86_C1)\n---\nimport rx.subject : Subject, SubjectObject;\nimport std.array : appender;\n\nSubject!int sub = new SubjectObject!int;\nauto filtered = sub.filter!(n => n % 2 == 0);\nauto buffer = appender!(int[])();\nauto disposable = filtered.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\nsub.put(3);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [0, 2][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L86_C1)\n" } ], "comment": " This module defines algorithm 'filter'\n", - "kind": "module" + "name": "rx.algorithm.filter" }, { + "kind": "module", "file": "source\\rx\\algorithm\\fold.d", - "name": "rx.algorithm.fold", "members": [ { + "parameters": [ + { + "kind": "alias", + "name": "fun" + }, + { + "kind": "type", + "name": "TObservable" + }, + { + "kind": "type", + "name": "Seed" + } + ], + "line": 14, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "fold", - "line": 14, - "type": "(auto ref TObservable observable, Seed seed)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "seed", - "type": "Seed" + "type": "Seed", + "name": "seed" } ], - "endline": 20, - "char": 6, + "line": 14, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "fold", + "type": "(auto ref TObservable observable, Seed seed)", + "endchar": 1, + "endline": 20 } ], "name": "fold", - "line": 14, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L22_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\nauto sum = sub.fold!\"a+b\"(0);\n\nint result = 0;\nauto disposable = sum.doSubscribe((int n) { result = n; });\nscope (exit)\n disposable.dispose();\n\nforeach (i; 1 .. 11)\n sub.put(i);\n\nassert(result == 0);\nsub.completed();\nassert(result == 55);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L22_C1)\n", - "parameters": [ - { - "name": "fun", - "kind": "alias" - }, - { - "name": "TObservable", - "kind": "type" - }, - { - "name": "Seed", - "kind": "type" - } - ], - "char": 6, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L22_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\nauto sum = sub.fold!\"a+b\"(0);\n\nint result = 0;\nauto disposable = sum.doSubscribe((int n) { result = n; });\nscope (exit)\n disposable.dispose();\n\nforeach (i; 1 .. 11)\n sub.put(i);\n\nassert(result == 0);\nsub.completed();\nassert(result == 55);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L22_C1)\n" } ], "comment": " This module defines algorithm 'fold'\n", - "kind": "module" + "name": "rx.algorithm.fold" }, { + "kind": "module", "file": "source\\rx\\algorithm\\groupby.d", - "name": "rx.algorithm.groupby", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TKey" + }, + { + "kind": "type", + "name": "E" + } + ], + "line": 19, + "kind": "template", + "char": 1, "members": [ { - "name": "GroupedObservable", - "line": 19, - "members": [], + "kind": "interface", "char": 1, - "kind": "interface" + "members": [], + "line": 19, + "name": "GroupedObservable" } ], "name": "GroupedObservable", - "line": 19, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "TKey", - "kind": "type" - }, - { - "name": "E", - "kind": "type" + "kind": "alias", + "name": "selector" } ], + "line": 345, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 347, + "kind": "template", + "char": 47, "members": [ { - "endchar": 5, - "name": "groupBy", - "line": 346, - "type": "GroupByObservable!(selector, TObservable)(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 351, + "line": 347, + "kind": "function", "char": 47, - "kind": "function" - } - ], - "name": "groupBy", - "line": 346, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "name": "groupBy", + "type": "GroupByObservable!(selector, TObservable)(auto ref TObservable observable)", + "endchar": 5, + "endline": 352 } ], - "char": 47, - "kind": "template" + "name": "groupBy" } ], "name": "groupBy", - "line": 344, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L355_C1)\n---\nauto sub = new SubjectObject!int;\n\nauto group = sub.groupBy!(n => n % 10);\n\nauto tester = new CounterObserver!(typeof(group).ElementType);\nauto disposable = group.subscribe(tester);\n\nsub.put(0);\nassert(tester.putCount == 1);\nassert(tester.lastValue.key == 0);\n\nsub.put(10);\nassert(tester.putCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L355_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L373_C1)\n---\nauto sub = new SubjectObject!string;\n\nauto group = sub.groupBy!(text => text);\n\nauto tester = new CounterObserver!(typeof(group).ElementType);\nauto disposable = group.subscribe(tester);\n\nsub.put(\"A\");\nassert(tester.putCount == 1);\nassert(tester.lastValue.key == \"A\");\n\nsub.put(\"B\");\nassert(tester.putCount == 2);\nassert(tester.lastValue.key == \"B\");\n\nsub.put(\"XXX\");\nassert(tester.putCount == 3);\nassert(tester.lastValue.key == \"XXX\");\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L373_C1)\n", - "parameters": [ - { - "name": "selector", - "kind": "alias" - } - ], - "char": 1, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L356_C1)\n---\nauto sub = new SubjectObject!int;\n\nauto group = sub.groupBy!(n => n % 10);\n\nauto tester = new CounterObserver!(typeof(group).ElementType);\nauto disposable = group.subscribe(tester);\n\nsub.put(0);\nassert(tester.putCount == 1);\nassert(tester.lastValue.key == 0);\n\nsub.put(10);\nassert(tester.putCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L356_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L374_C1)\n---\nauto sub = new SubjectObject!string;\n\nauto group = sub.groupBy!(text => text);\n\nauto tester = new CounterObserver!(typeof(group).ElementType);\nauto disposable = group.subscribe(tester);\n\nsub.put(\"A\");\nassert(tester.putCount == 1);\nassert(tester.lastValue.key == \"A\");\n\nsub.put(\"B\");\nassert(tester.putCount == 2);\nassert(tester.lastValue.key == \"B\");\n\nsub.put(\"XXX\");\nassert(tester.putCount == 3);\nassert(tester.lastValue.key == \"XXX\");\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L374_C1)\n" } ], "comment": " This module defines algorithm 'groupBy'\n", - "kind": "module" + "name": "rx.algorithm.groupby" }, { + "kind": "module", "file": "source\\rx\\algorithm\\map.d", - "name": "rx.algorithm.map", "members": [ { + "parameters": [ + { + "kind": "alias", + "name": "f" + } + ], + "line": 129, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 131, + "kind": "template", + "char": 36, "members": [ { - "endchar": 5, - "name": "map", - "line": 131, - "type": "MapObservable!(f, TObservable)(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 134, + "line": 131, + "kind": "function", "char": 36, - "kind": "function" - } - ], - "name": "map", - "line": 131, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "name": "map", + "type": "MapObservable!(f, TObservable)(auto ref TObservable observable)", + "endchar": 5, + "endline": 134 } ], - "char": 36, - "kind": "template" + "name": "map" } ], "name": "map", - "line": 129, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L137_C1)\n---\nimport rx.subject;\nimport std.array : appender;\nimport std.conv : to;\n\nSubject!int sub = new SubjectObject!int;\nauto mapped = sub.map!(n => to!string(n));\nstatic assert(isObservable!(typeof(mapped), string));\nstatic assert(isSubscribable!(typeof(mapped), Observer!string));\n\nauto buffer = appender!(string[])();\nauto disposable = mapped.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [\"0\", \"1\", \"2\"][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L137_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L162_C1)\n---\nimport rx.subject;\nimport std.array : appender;\nimport std.conv : to;\n\nSubject!int sub = new SubjectObject!int;\nauto mapped = sub.map!\"a * 2\";\nstatic assert(isObservable!(typeof(mapped), int));\nstatic assert(isSubscribable!(typeof(mapped), Observer!int));\n\nauto buffer = appender!(int[])();\nauto disposable = mapped.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [0, 2, 4][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L162_C1)\n", - "parameters": [ - { - "name": "f", - "kind": "alias" - } - ], - "char": 1, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L137_C1)\n---\nimport rx.subject;\nimport std.array : appender;\nimport std.conv : to;\n\nSubject!int sub = new SubjectObject!int;\nauto mapped = sub.map!(n => to!string(n));\nstatic assert(isObservable!(typeof(mapped), string));\nstatic assert(isSubscribable!(typeof(mapped), Observer!string));\n\nauto buffer = appender!(string[])();\nauto disposable = mapped.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [\"0\", \"1\", \"2\"][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L137_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L162_C1)\n---\nimport rx.subject;\nimport std.array : appender;\nimport std.conv : to;\n\nSubject!int sub = new SubjectObject!int;\nauto mapped = sub.map!\"a * 2\";\nstatic assert(isObservable!(typeof(mapped), int));\nstatic assert(isSubscribable!(typeof(mapped), Observer!int));\n\nauto buffer = appender!(int[])();\nauto disposable = mapped.subscribe(buffer);\nscope (exit)\n disposable.dispose();\n\nsub.put(0);\nsub.put(1);\nsub.put(2);\n\nimport std.algorithm : equal;\n\nassert(equal(buffer.data, [0, 2, 4][]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L162_C1)\n" } ], "comment": " This module defines algorithm 'map'\n", - "kind": "module" + "name": "rx.algorithm.map" }, { + "kind": "module", "file": "source\\rx\\algorithm\\merge.d", - "name": "rx.algorithm.merge", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "T1" + }, + { + "kind": "type", + "name": "T2" + } + ], + "line": 85, + "kind": "template", + "char": 26, "members": [ { - "endchar": 1, - "name": "merge", - "line": 85, - "type": "MergeObservable!(T1, T2)(auto ref T1 observable1, auto ref T2 observable2)", "parameters": [ { - "name": "observable1", "type": "T1", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable1" }, { - "name": "observable2", "type": "T2", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable2" } ], - "endline": 88, + "line": 85, + "kind": "function", "char": 26, - "kind": "function" + "name": "merge", + "type": "MergeObservable!(T1, T2)(auto ref T1 observable1, auto ref T2 observable2)", + "endchar": 1, + "endline": 88 } ], "name": "merge", - "line": 85, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L90_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto s1 = new SubjectObject!int;\nauto s2 = new SubjectObject!short;\n\nauto merged = s1.merge(s2);\n\nint count = 0;\nauto d = merged.doSubscribe((int n) { count++; });\n\nassert(count == 0);\ns1.put(1);\nassert(count == 1);\ns2.put(2);\nassert(count == 2);\n\nd.dispose();\n\ns1.put(10);\nassert(count == 2);\ns2.put(100);\nassert(count == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L90_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L90_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto s1 = new SubjectObject!int;\nauto s2 = new SubjectObject!short;\n\nauto merged = s1.merge(s2);\n\nint count = 0;\nauto d = merged.doSubscribe((int n) { count++; });\n\nassert(count == 0);\ns1.put(1);\nassert(count == 1);\ns2.put(2);\nassert(count == 2);\n\nd.dispose();\n\ns1.put(10);\nassert(count == 2);\ns2.put(100);\nassert(count == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L90_C1)\n" + }, + { + "constraint": "isObservable!TObservable && isObservable!(TObservable.ElementType)", "parameters": [ { - "name": "T1", - "kind": "type" - }, - { - "name": "T2", - "kind": "type" + "kind": "type", + "name": "TObservable" } ], - "char": 26, - "kind": "template" - }, - { + "line": 245, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "merge", - "line": 245, - "type": "(auto ref TObservable observable)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 275, - "char": 6, + "line": 245, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "merge", + "type": "(auto ref TObservable observable)", + "endchar": 1, + "endline": 275 } ], "name": "merge", - "line": 245, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L278_C1)\n---\nimport rx.algorithm.groupby : groupBy;\nimport rx.algorithm.map : map;\nimport rx.algorithm.fold : fold;\nimport rx.subject : SubjectObject, CounterObserver;\n\nauto subject = new SubjectObject!int;\nauto counted = subject.groupBy!(n => n % 10).map!(o => o.fold!((a, b) => a + 1)(0)).merge();\n\nauto counter = new CounterObserver!int;\n\nauto disposable = counted.subscribe(counter);\n\nsubject.put(0);\nsubject.put(0);\nassert(counter.putCount == 0);\nsubject.completed();\nassert(counter.putCount == 1);\nassert(counter.lastValue == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L278_C1)\n", - "parameters": [ - { - "name": "TObservable", - "kind": "type" - } - ], - "constraint": "isObservable!TObservable && isObservable!(TObservable.ElementType)", - "char": 6, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L278_C1)\n---\nimport rx.algorithm.groupby : groupBy;\nimport rx.algorithm.map : map;\nimport rx.algorithm.fold : fold;\nimport rx.subject : SubjectObject, CounterObserver;\n\nauto subject = new SubjectObject!int;\nauto counted = subject.groupBy!(n => n % 10).map!(o => o.fold!((a, b) => a + 1)(0)).merge();\n\nauto counter = new CounterObserver!int;\n\nauto disposable = counted.subscribe(counter);\n\nsubject.put(0);\nsubject.put(0);\nassert(counter.putCount == 0);\nsubject.completed();\nassert(counter.putCount == 1);\nassert(counter.lastValue == 2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L278_C1)\n" } ], "comment": " This module defines algorithm 'merge'\n", - "kind": "module" + "name": "rx.algorithm.merge" }, { + "kind": "module", "file": "source\\rx\\algorithm\\scan.d", - "name": "rx.algorithm.scan", "members": [ { + "parameters": [ + { + "kind": "alias", + "name": "f" + } + ], + "line": 126, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + }, + { + "kind": "type", + "name": "TAccumulate" + } + ], + "line": 128, + "kind": "template", + "char": 10, "members": [ { - "endchar": 5, - "name": "scan", - "line": 128, - "type": "(auto ref TObservable observable, TAccumulate seed)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "seed", - "type": "TAccumulate" + "type": "TAccumulate", + "name": "seed" } ], - "endline": 131, - "char": 10, + "line": 128, "kind": "function", - "storageClass": [ - "auto" - ] - } - ], - "name": "scan", - "line": 128, - "parameters": [ - { - "name": "TObservable", - "kind": "type" - }, - { - "name": "TAccumulate", - "kind": "type" + "char": 10, + "name": "scan", + "type": "(auto ref TObservable observable, TAccumulate seed)", + "endchar": 5, + "endline": 131 } ], - "char": 10, - "kind": "template" + "name": "scan" } ], "name": "scan", - "line": 126, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L134_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto subject = new SubjectObject!int;\n\nauto sum = subject.scan!((a, b) => a + b)(0);\nstatic assert(isObservable!(typeof(sum), int));\n\nimport std.array : appender;\n\nauto buf = appender!(int[]);\nauto disposable = sum.subscribe(buf);\nscope (exit)\n disposable.dispose();\n\nforeach (_; 0 .. 5)\n{\n subject.put(1);\n}\n\nauto result = buf.data;\nassert(result.length == 5);\nimport std.algorithm : equal;\n\nassert(equal(result, [1, 2, 3, 4, 5]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L134_C1)\n", - "parameters": [ - { - "name": "f", - "kind": "alias" - } - ], - "char": 1, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L134_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto subject = new SubjectObject!int;\n\nauto sum = subject.scan!((a, b) => a + b)(0);\nstatic assert(isObservable!(typeof(sum), int));\n\nimport std.array : appender;\n\nauto buf = appender!(int[]);\nauto disposable = sum.subscribe(buf);\nscope (exit)\n disposable.dispose();\n\nforeach (_; 0 .. 5)\n{\n subject.put(1);\n}\n\nauto result = buf.data;\nassert(result.length == 5);\nimport std.algorithm : equal;\n\nassert(equal(result, [1, 2, 3, 4, 5]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L134_C1)\n" } ], "comment": " This module defines algorithm 'scan'\n", - "kind": "module" + "name": "rx.algorithm.scan" }, { + "kind": "module", "file": "source\\rx\\algorithm\\tee.d", - "name": "rx.algorithm.tee", "members": [ { + "parameters": [ + { + "kind": "alias", + "name": "f" + } + ], + "line": 76, + "kind": "template", + "char": 1, "members": [ { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 78, + "kind": "template", + "char": 61, "members": [ { - "endchar": 5, - "name": "tee", - "line": 78, - "type": "TeeObservable!(f, TObservable, TObservable.ElementType)(auto ref TObservable observable)", "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 82, + "line": 78, + "kind": "function", "char": 61, - "kind": "function" - } - ], - "name": "tee", - "line": 78, - "parameters": [ - { - "name": "TObservable", - "kind": "type" + "name": "tee", + "type": "TeeObservable!(f, TObservable, TObservable.ElementType)(auto ref TObservable observable)", + "endchar": 5, + "endline": 82 } ], - "char": 61, - "kind": "template" + "name": "tee" } ], "name": "tee", - "line": 76, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L85_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nimport std.array : appender;\n\nauto buf1 = appender!(int[]);\nauto buf2 = appender!(int[]);\n\nimport rx.algorithm : map;\n\nauto disposable = sub.tee!(i => buf1.put(i))().map!(i => i * 2)().subscribe(buf2);\n\nsub.put(1);\nsub.put(2);\ndisposable.dispose();\nsub.put(3);\n\nimport std.algorithm : equal;\n\nassert(equal(buf1.data, [1, 2]));\nassert(equal(buf2.data, [2, 4]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L85_C1)\n", - "parameters": [ - { - "name": "f", - "kind": "alias" - } - ], - "char": 1, - "kind": "template" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L85_C1)\n---\nimport rx.subject : SubjectObject;\n\nauto sub = new SubjectObject!int;\n\nimport std.array : appender;\n\nauto buf1 = appender!(int[]);\nauto buf2 = appender!(int[]);\n\nimport rx.algorithm : map;\n\nauto disposable = sub.tee!(i => buf1.put(i))().map!(i => i * 2)().subscribe(buf2);\n\nsub.put(1);\nsub.put(2);\ndisposable.dispose();\nsub.put(3);\n\nimport std.algorithm : equal;\n\nassert(equal(buf1.data, [1, 2]));\nassert(equal(buf2.data, [2, 4]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L85_C1)\n" } ], "comment": " This module defines algorithm 'tee'\n", - "kind": "module" + "name": "rx.algorithm.tee" }, { - "file": "source\\rx\\disposable.d", - "name": "rx.disposable", + "kind": "module", + "file": "source\\rx\\algorithm\\uniq.d", "members": [ { - "members": [ - { - "name": "isDisposable", - "line": 13, - "deco": "b", - "init": "is(typeof(()\r\n{\r\nT disposable = void;\r\ndisposable.dispose();\r\n}\r\n()))", - "char": 15, - "kind": "variable", - "storageClass": [ - "enum" - ] - } - ], - "name": "isDisposable", - "line": 11, - "comment": "Tests if something is a Disposable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L19_C1)\n---\nstruct A\n{\n void dispose()\n {\n }\n}\n\nclass B\n{\n void dispose()\n {\n }\n}\n\ninterface C\n{\n void dispose();\n}\n\nstatic assert(isDisposable!A);\nstatic assert(isDisposable!B);\nstatic assert(isDisposable!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L19_C1)\n", "parameters": [ { - "name": "T", - "kind": "type" + "kind": "alias", + "defaultAlias": "\"a == b\"", + "name": "pred" } ], + "line": 200, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "isCancelable", - "line": 48, - "init": "isDisposable!T && is(typeof((inout int n = 0)\r\n{\r\nT disposable = void;\r\nbool b = disposable.isDisposed;\r\n}\r\n))", - "char": 10, - "kind": "variable", - "storageClass": [ - "enum" - ] - } + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 202, + "kind": "template", + "char": 40, + "members": [ + { + "parameters": [ + { + "type": "TObservable", + "storageClass": [ + "auto", + "ref" + ], + "name": "observable" + } + ], + "line": 202, + "kind": "function", + "char": 40, + "name": "uniq", + "type": "UniqObservable!(TObservable, pred)(auto ref TObservable observable)", + "endchar": 5, + "endline": 205 + } + ], + "name": "uniq" + } ], - "name": "isCancelable", - "line": 46, - "comment": "Tests if something is a Cancelable\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L54_C1)\n---\nstruct A\n{\n bool isDisposed() @property\n {\n return true;\n }\n\n void dispose()\n {\n }\n}\n\nclass B\n{\n bool isDisposed() @property\n {\n return true;\n }\n\n void dispose()\n {\n }\n}\n\ninterface C\n{\n bool isDisposed() @property;\n void dispose();\n}\n\nstatic assert(isCancelable!A);\nstatic assert(isCancelable!B);\nstatic assert(isCancelable!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L54_C1)\n", + "name": "uniq", + "comment": "\nExample:\nditto$(DDOX_UNITTEST_HEADER __unittest_L212_C1)\n---\nimport rx.subject : SubjectObject;\nimport std.array : appender;\n\nauto sub = new SubjectObject!int;\nauto buf = appender!(int[]);\n\nauto disposable = sub.uniq.subscribe(buf);\nscope (exit)\n disposable.dispose();\n\n.put(sub, [11, 11, 22, 22, 33]);\n\nauto data = buf.data;\nassert(data.length == 3);\nassert(data[0] == 11);\nassert(data[1] == 22);\nassert(data[2] == 33);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L212_C1)\nExample:\nditto$(DDOX_UNITTEST_HEADER __unittest_L234_C9)\n---\nimport std.datetime : Date;\nimport rx.subject : SubjectObject;\nimport std.array : appender;\n\nauto sub = new SubjectObject!Date;\nauto buf = appender!(Date[]);\n\nauto disposable = sub.uniq!\"a.year == b.year\".subscribe(buf);\nscope (exit)\n disposable.dispose();\n\n.put(sub, Date(2000, 1, 1));\n.put(sub, Date(2000, 1, 2));\n.put(sub, Date(2017, 3, 24));\n.put(sub, Date(2017, 4, 24));\n.put(sub, Date(2017, 4, 24));\n\nauto data = buf.data;\nassert(data.length == 2);\nassert(data[0] == Date(2000, 1, 1));\nassert(data[1] == Date(2017, 3, 24));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L234_C9)\nExample:\nditto$(DDOX_UNITTEST_HEADER __unittest_L260_C9)\n---\nimport std.datetime : Date;\nimport rx.subject : SubjectObject;\nimport std.array : appender;\n\nauto sub = new SubjectObject!Date;\nauto buf = appender!(Date[]);\n\nauto disposable = sub.distinctUntilChanged!\"a.year == b.year\".subscribe(buf);\nscope (exit)\n disposable.dispose();\n\n.put(sub, Date(2000, 1, 1));\n.put(sub, Date(2000, 1, 2));\n.put(sub, Date(2017, 3, 24));\n.put(sub, Date(2017, 4, 24));\n.put(sub, Date(2017, 4, 24));\n\nauto data = buf.data;\nassert(data.length == 2);\nassert(data[0] == Date(2000, 1, 1));\nassert(data[1] == Date(2017, 3, 24));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L260_C9)\n" + }, + { + "kind": "alias", + "line": 209, + "char": 1, + "comment": "ditto\n", + "name": "distinctUntilChanged" + } + ], + "comment": " This module defines algorithm 'uniq'\n\n This is also called 'distinctUntilChanged'.\n", + "name": "rx.algorithm.uniq" + }, + { + "kind": "module", + "file": "source\\rx\\disposable.d", + "members": [ + { "parameters": [ { - "name": "T", - "kind": "type" + "kind": "type", + "name": "T" } ], + "line": 11, + "kind": "template", "char": 1, - "kind": "template" + "members": [ + { + "storageClass": [ + "enum" + ], + "line": 13, + "kind": "variable", + "char": 15, + "name": "isDisposable", + "deco": "b", + "init": "is(typeof(()\r\n{\r\nT disposable = void;\r\ndisposable.dispose();\r\n}\r\n()))" + } + ], + "name": "isDisposable", + "comment": "Tests if something is a Disposable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L19_C1)\n---\nstruct A\n{\n void dispose()\n {\n }\n}\n\nclass B\n{\n void dispose()\n {\n }\n}\n\ninterface C\n{\n void dispose();\n}\n\nstatic assert(isDisposable!A);\nstatic assert(isDisposable!B);\nstatic assert(isDisposable!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L19_C1)\n" }, { - "name": "Disposable", - "line": 92, - "comment": "Wrapper for disposable objects.\n", + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 46, + "kind": "template", + "char": 1, "members": [ { - "name": "dispose", - "line": 95, - "comment": "\n", - "deco": "FZv", + "storageClass": [ + "enum" + ], + "line": 48, + "kind": "variable", "char": 10, - "kind": "function", + "name": "isCancelable", + "init": "isDisposable!T && is(typeof((inout int n = 0)\r\n{\r\nT disposable = void;\r\nbool b = disposable.isDisposed;\r\n}\r\n))" + } + ], + "name": "isCancelable", + "comment": "Tests if something is a Cancelable\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L54_C1)\n---\nstruct A\n{\n bool isDisposed() @property\n {\n return true;\n }\n\n void dispose()\n {\n }\n}\n\nclass B\n{\n bool isDisposed() @property\n {\n return true;\n }\n\n void dispose()\n {\n }\n}\n\ninterface C\n{\n bool isDisposed() @property;\n void dispose();\n}\n\nstatic assert(isCancelable!A);\nstatic assert(isCancelable!B);\nstatic assert(isCancelable!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L54_C1)\n" + }, + { + "kind": "interface", + "line": 92, + "char": 1, + "members": [ + { "storageClass": [ "abstract" - ] + ], + "line": 95, + "kind": "function", + "char": 10, + "name": "dispose", + "deco": "FZv", + "comment": "\n" } ], - "char": 1, - "kind": "interface" + "comment": "Wrapper for disposable objects.\n", + "name": "Disposable" }, { - "interfaces": [ - "rx.disposable.Disposable" - ], + "line": 98, + "kind": "interface", + "char": 1, "members": [ { - "name": "isDisposed", - "line": 101, - "comment": "\n", - "deco": "FNdZb", - "char": 10, - "kind": "function", "storageClass": [ "abstract" - ] + ], + "line": 101, + "kind": "function", + "char": 10, + "name": "isDisposed", + "deco": "FNdZb", + "comment": "\n" } ], "name": "Cancelable", - "line": 98, - "comment": "Wrapper for cancelable objects.\n", - "char": 1, - "kind": "interface" - }, - { "interfaces": [ - "rx.disposable.Cancelable" + "rx.disposable.Disposable" ], + "comment": "Wrapper for cancelable objects.\n" + }, + { + "line": 105, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "isDisposed", + "overrides": [ + "rx.disposable.Cancelable.isDisposed" + ], "line": 109, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "isDisposed", "deco": "FNdZb", + "endchar": 5, "endline": 112, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Cancelable.isDisposed" - ] + "comment": "\n" }, { - "name": "isCanceled", + "kind": "alias", "line": 114, - "comment": "\n", "char": 22, - "kind": "alias" + "comment": "\n", + "name": "isCanceled" }, { - "endchar": 5, - "name": "dispose", + "overrides": [ + "rx.disposable.Disposable.dispose" + ], "line": 118, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "deco": "FZv", + "endchar": 5, "endline": 121, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Disposable.dispose" - ] + "comment": "\n" }, { - "name": "cancel", + "kind": "alias", "line": 123, - "comment": "\n", "char": 19, - "kind": "alias" + "comment": "\n", + "name": "cancel" } ], "name": "CancellationToken", - "line": 105, - "comment": "Simply implements for Cancelable interface. Its propagates notification that operations should be canceled.\n", - "char": 1, - "kind": "class" + "interfaces": [ + "rx.disposable.Cancelable" + ], + "comment": "Simply implements for Cancelable interface. Its propagates notification that operations should be canceled.\n" }, { + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 150, + "kind": "template", + "char": 1, "members": [ { - "name": "DisposableObject", - "line": 150, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", - "line": 154, - "comment": "\n", - "type": "(T disposable)", "parameters": [ { - "name": "disposable", - "type": "T" + "type": "T", + "name": "disposable" } ], - "endline": 157, + "line": 154, + "kind": "constructor", "char": 5, - "kind": "constructor" + "name": "this", + "type": "(T disposable)", + "endchar": 5, + "endline": 157, + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", "line": 161, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "type": "void()", + "endchar": 5, "endline": 164, - "char": 10, - "kind": "function" + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 150, + "name": "DisposableObject" } ], "name": "DisposableObject", - "line": 150, - "comment": "Class that implements the Disposable interface and wraps the dispose methods in virtual functions.\n", + "comment": "Class that implements the Disposable interface and wraps the dispose methods in virtual functions.\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "kind": "type", + "name": "T" } ], + "line": 170, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "CancelableObject", - "line": 170, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", - "line": 174, - "comment": "\n", - "type": "(T disposable)", "parameters": [ { - "name": "disposable", - "type": "T" + "type": "T", + "name": "disposable" } ], - "endline": 177, + "line": 174, + "kind": "constructor", "char": 5, - "kind": "constructor" + "name": "this", + "type": "(T disposable)", + "endchar": 5, + "endline": 177, + "comment": "\n" }, { - "endchar": 5, - "name": "isDisposed", "line": 181, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "isDisposed", "type": "@property bool()", + "endchar": 5, "endline": 184, - "char": 10, - "kind": "function" + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 170, + "name": "CancelableObject" } ], "name": "CancelableObject", - "line": 170, - "comment": "Class that implements the Cancelable interface and wraps the isDisposed property in virtual functions.\n", + "comment": "Class that implements the Cancelable interface and wraps the isDisposed property in virtual functions.\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "kind": "type", + "name": "T" } ], - "char": 1, - "kind": "template" - }, - { + "line": 188, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "disposableObject", - "line": 188, - "type": "(T disposable)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "disposable", - "type": "T" + "type": "T", + "name": "disposable" } ], - "endline": 204, - "char": 6, + "line": 188, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "disposableObject", + "type": "(T disposable)", + "endchar": 1, + "endline": 204 } ], "name": "disposableObject", - "line": 188, - "comment": "Wraps dispose method in virtual functions.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L207_C1)\n---\nint count = 0;\nstruct TestDisposable\n{\n void dispose()\n {\n count++;\n }\n}\n\nTestDisposable test;\nDisposable disposable = disposableObject(test);\nassert(count == 0);\ndisposable.dispose();\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L207_C1)\n", - "parameters": [ - { - "name": "T", - "kind": "type" - } - ], - "char": 6, - "kind": "template" + "comment": "Wraps dispose method in virtual functions.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L207_C1)\n---\nint count = 0;\nstruct TestDisposable\n{\n void dispose()\n {\n count++;\n }\n}\n\nTestDisposable test;\nDisposable disposable = disposableObject(test);\nassert(count == 0);\ndisposable.dispose();\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L207_C1)\n" }, { - "interfaces": [ - "rx.disposable.Disposable" - ], + "line": 274, + "kind": "class", + "char": 7, "members": [ { - "endchar": 5, - "name": "instance", + "storageClass": [ + "static" + ], "line": 288, - "comment": "\n", + "kind": "function", + "char": 23, + "name": "instance", "deco": "FNdZC2rx10disposable10Disposable", + "endchar": 5, "endline": 294, - "char": 23, - "kind": "function", - "storageClass": [ - "static" - ] + "comment": "\n" } ], "name": "NopDisposable", - "line": 274, - "comment": "Defines a instance property that return NOP Disposable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L297_C1)\n---\nDisposable d1 = NopDisposable.instance;\nDisposable d2 = NopDisposable.instance;\nassert(d1 !is null);\nassert(d1 is d2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L297_C1)\n", - "char": 7, - "kind": "class" - }, - { "interfaces": [ - "rx.disposable.Cancelable" + "rx.disposable.Disposable" ], + "comment": "Defines a instance property that return NOP Disposable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L297_C1)\n---\nDisposable d1 = NopDisposable.instance;\nDisposable d2 = NopDisposable.instance;\nassert(d1 !is null);\nassert(d1 is d2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L297_C1)\n" + }, + { + "line": 334, + "kind": "class", + "char": 7, "members": [ { - "endchar": 5, - "name": "setDisposable", - "line": 338, - "comment": "\n", - "deco": "FC2rx10disposable10DisposableZv", "parameters": [ { - "name": "disposable", - "deco": "C2rx10disposable10Disposable" + "deco": "C2rx10disposable10Disposable", + "name": "disposable" } ], - "endline": 344, + "line": 338, + "kind": "function", "char": 10, - "kind": "function" + "name": "setDisposable", + "deco": "FC2rx10disposable10DisposableZv", + "endchar": 5, + "endline": 344, + "comment": "\n" }, { - "endchar": 5, - "name": "isDisposed", + "overrides": [ + "rx.disposable.Cancelable.isDisposed" + ], "line": 348, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "isDisposed", "deco": "FNdZb", + "endchar": 5, "endline": 351, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Cancelable.isDisposed" - ] + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", + "overrides": [ + "rx.disposable.Disposable.dispose" + ], "line": 355, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "deco": "FZv", + "endchar": 5, "endline": 362, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Disposable.dispose" - ] + "comment": "\n" } ], "name": "SingleAssignmentDisposable", - "line": 334, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L368_C1)\n---\nint count = 0;\nclass TestDisposable : Disposable\n{\n void dispose()\n {\n count++;\n }\n}\n\nauto temp = new SingleAssignmentDisposable;\ntemp.setDisposable(new TestDisposable);\nassert(!temp.isDisposed);\nassert(count == 0);\ntemp.dispose();\nassert(temp.isDisposed);\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L368_C1)\n", - "char": 7, - "kind": "class" - }, - { "interfaces": [ "rx.disposable.Cancelable" ], + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L368_C1)\n---\nint count = 0;\nclass TestDisposable : Disposable\n{\n void dispose()\n {\n count++;\n }\n}\n\nauto temp = new SingleAssignmentDisposable;\ntemp.setDisposable(new TestDisposable);\nassert(!temp.isDisposed);\nassert(count == 0);\ntemp.dispose();\nassert(temp.isDisposed);\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L368_C1)\n" + }, + { + "line": 418, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "isDisposed", + "overrides": [ + "rx.disposable.Cancelable.isDisposed" + ], "line": 428, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "isDisposed", "deco": "FNdZb", + "endchar": 5, "endline": 431, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Cancelable.isDisposed" - ] + "comment": "\n" }, { - "endchar": 5, - "name": "disposable", - "line": 434, - "comment": "\n", - "deco": "FNdC2rx10disposable10DisposableZv", "parameters": [ { - "name": "value", - "deco": "C2rx10disposable10Disposable" + "deco": "C2rx10disposable10Disposable", + "name": "value" } ], - "endline": 451, + "line": 434, + "kind": "function", "char": 10, - "kind": "function" + "name": "disposable", + "deco": "FNdC2rx10disposable10DisposableZv", + "endchar": 5, + "endline": 451, + "comment": "\n" }, { - "endchar": 5, - "name": "disposable", "line": 454, - "comment": "\n", + "kind": "function", + "char": 16, + "name": "disposable", "deco": "FNdZC2rx10disposable10Disposable", + "endchar": 5, "endline": 457, - "char": 16, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", + "overrides": [ + "rx.disposable.Disposable.dispose" + ], "line": 461, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "deco": "FZv", + "endchar": 5, "endline": 475, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Disposable.dispose" - ] + "comment": "\n" } ], "name": "SerialDisposable", - "line": 418, - "comment": "\n", - "char": 1, - "kind": "class" - }, - { "interfaces": [ - "rx.disposable.Disposable" + "rx.disposable.Cancelable" ], + "comment": "\n" + }, + { + "line": 524, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "signal", "line": 534, - "comment": "\n", + "kind": "function", + "char": 17, + "name": "signal", "deco": "FNdZC2rx4util11EventSignal", + "endchar": 5, "endline": 537, - "char": 17, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", + "overrides": [ + "rx.disposable.Disposable.dispose" + ], "line": 541, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "deco": "FZv", + "endchar": 5, "endline": 544, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Disposable.dispose" - ] + "comment": "\n" } ], "name": "SignalDisposable", - "line": 524, - "comment": "\n", - "char": 1, - "kind": "class" - }, - { "interfaces": [ "rx.disposable.Disposable" ], + "comment": "\n" + }, + { + "line": 560, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", - "line": 564, - "comment": "\n", - "deco": "FAC2rx10disposable10DisposableXCQBdQBd19CompositeDisposable", "parameters": [ { - "name": "disposables", - "deco": "AC2rx10disposable10Disposable" + "deco": "AC2rx10disposable10Disposable", + "name": "disposables" } ], - "endline": 568, + "line": 564, + "kind": "constructor", "originalType": "(Disposable[] disposables...)", "char": 5, - "kind": "constructor" + "name": "this", + "deco": "FAC2rx10disposable10DisposableXCQBdQBd19CompositeDisposable", + "endchar": 5, + "endline": 568, + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", + "overrides": [ + "rx.disposable.Disposable.dispose" + ], "line": 572, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "dispose", "deco": "FZv", + "endchar": 5, "endline": 592, - "char": 10, - "kind": "function", - "overrides": [ - "rx.disposable.Disposable.dispose" - ] + "comment": "\n" } ], "name": "CompositeDisposable", - "line": 560, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L635_C1)\n---\nauto d1 = new SingleAssignmentDisposable;\nauto d2 = new SerialDisposable;\nauto d = new CompositeDisposable(d1, d2);\nd.dispose();\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L635_C1)\n", - "char": 1, - "kind": "class" - }, - { "interfaces": [ "rx.disposable.Disposable" ], + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L635_C1)\n---\nauto d1 = new SingleAssignmentDisposable;\nauto d2 = new SerialDisposable;\nauto d = new CompositeDisposable(d1, d2);\nd.dispose();\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L635_C1)\n" + }, + { + "line": 678, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", - "line": 656, - "comment": "\n", - "deco": "FDFZvZC2rx10disposable19AnonymousDisposable", "parameters": [ { - "name": "dispose", - "deco": "DFZv" + "deco": "DFZv", + "name": "dispose" } ], - "endline": 660, + "line": 682, + "kind": "constructor", "originalType": "(void delegate() dispose)", "char": 5, - "kind": "constructor" + "name": "this", + "deco": "FDFZvZC2rx10disposable19AnonymousDisposable", + "endchar": 5, + "endline": 686, + "comment": "\n" }, { - "endchar": 5, - "name": "dispose", - "line": 664, - "comment": "\n", - "deco": "FZv", - "endline": 671, - "char": 10, - "kind": "function", "overrides": [ "rx.disposable.Disposable.dispose" - ] + ], + "line": 690, + "kind": "function", + "char": 10, + "name": "dispose", + "deco": "FZv", + "endchar": 5, + "endline": 697, + "comment": "\n" } ], "name": "AnonymousDisposable", - "line": 652, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L677_C1)\n---\nint count = 0;\nauto d = new AnonymousDisposable({ count++; });\nassert(count == 0);\nd.dispose();\nassert(count == 1);\nd.dispose();\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L677_C1)\n", - "char": 1, - "kind": "class" - }, - { "interfaces": [ "rx.disposable.Disposable" ], + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L703_C1)\n---\nint count = 0;\nauto d = new AnonymousDisposable({ count++; });\nassert(count == 0);\nd.dispose();\nassert(count == 1);\nd.dispose();\nassert(count == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L703_C1)\n" + }, + { + "line": 715, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", - "line": 693, - "comment": "\n", - "deco": "FC2rx10disposable10DisposablebZCQBeQBe18RefCountDisposable", "parameters": [ { - "name": "disposable", - "deco": "C2rx10disposable10Disposable" + "deco": "C2rx10disposable10Disposable", + "name": "disposable" }, { - "name": "throwWhenDisposed", "deco": "b", - "default": "false" + "default": "false", + "name": "throwWhenDisposed" } ], - "endline": 702, + "line": 719, + "kind": "constructor", "originalType": "(Disposable disposable, bool throwWhenDisposed = false)", "char": 5, - "kind": "constructor" + "name": "this", + "deco": "FC2rx10disposable10DisposablebZCQBeQBe18RefCountDisposable", + "endchar": 5, + "endline": 728, + "comment": "\n" }, { - "endchar": 5, + "line": 732, + "kind": "function", + "char": 16, "name": "getDisposable", - "line": 706, - "comment": "\n", "deco": "FZC2rx10disposable10Disposable", - "endline": 724, - "char": 16, - "kind": "function" - }, - { "endchar": 5, - "name": "dispose", - "line": 727, - "comment": "\n", - "deco": "FZv", "endline": 750, - "char": 10, - "kind": "function", + "comment": "\n" + }, + { "overrides": [ "rx.disposable.Disposable.dispose" - ] + ], + "line": 753, + "kind": "function", + "char": 10, + "name": "dispose", + "deco": "FZv", + "endchar": 5, + "endline": 776, + "comment": "\n" } ], "name": "RefCountDisposable", - "line": 689, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L788_C1)\n---\nbool disposed = false;\nauto disposable = new RefCountDisposable(new AnonymousDisposable({\n disposed = true;\n }));\n\nauto subscription = disposable.getDisposable();\n\nassert(!disposed);\ndisposable.dispose();\nassert(!disposed);\n\nsubscription.dispose();\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L788_C1)\n", - "char": 1, - "kind": "class" + "interfaces": [ + "rx.disposable.Disposable" + ], + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L814_C1)\n---\nbool disposed = false;\nauto disposable = new RefCountDisposable(new AnonymousDisposable({\n disposed = true;\n }));\n\nauto subscription = disposable.getDisposable();\n\nassert(!disposed);\ndisposable.dispose();\nassert(!disposed);\n\nsubscription.dispose();\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L814_C1)\n" }, { + "parameters": [ + { + "kind": "alias", + "name": "f" + } + ], + "line": 899, + "kind": "template", + "char": 1, "members": [ { + "constraint": "isDisposable!TDisposable", + "parameters": [ + { + "kind": "type", + "name": "TDisposable" + } + ], + "line": 901, + "kind": "template", + "char": 10, "members": [ { - "endchar": 5, - "name": "withDisposed", - "line": 875, - "type": "(auto ref TDisposable disposable)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "disposable", "type": "TDisposable", "storageClass": [ "auto", "ref" - ] + ], + "name": "disposable" } ], - "endline": 881, - "char": 10, + "line": 901, "kind": "function", - "storageClass": [ - "auto" - ] - } - ], - "name": "withDisposed", - "line": 875, - "parameters": [ - { - "name": "TDisposable", - "kind": "type" + "char": 10, + "name": "withDisposed", + "type": "(auto ref TDisposable disposable)", + "endchar": 5, + "endline": 907 } ], - "constraint": "isDisposable!TDisposable", - "char": 10, - "kind": "template" + "name": "withDisposed" } ], "name": "withDisposed", - "line": 873, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L892_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!(_ => putCount++)\n .withDisposed!(() => disposedCount++);\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L892_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L911_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nalias traceDispose = withDisposed!(() => disposed = true);\n\nauto disposable = traceDispose(sub.doSubscribe!(_ => putCount++));\n\nsub.put(1);\nsub.completed();\n\nassert(putCount == 1);\nassert(!disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L911_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L931_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nalias traceDispose = withDisposed!(() => disposed = true);\n\nauto disposable = traceDispose(sub.doSubscribe!(_ => putCount++));\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L931_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L951_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nauto disposable = sub.doSubscribe!(_ => putCount++).withDisposed(() {\n disposed = true;\n});\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L951_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L971_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!((int) { })\n .withDisposed!(() { disposedCount++; });\n\ndisposable.dispose();\ndisposable.dispose();\n\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L971_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L988_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nauto disposable = sub.doSubscribe!(_ => putCount++).withDisposed(() {\n disposed = true;\n});\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L988_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L1008_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!((int) { }).withDisposed(() {\n disposedCount++;\n});\n\ndisposable.dispose();\ndisposable.dispose();\n\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L1008_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L918_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!(_ => putCount++)\n .withDisposed!(() => disposedCount++);\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L918_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L937_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nalias traceDispose = withDisposed!(() => disposed = true);\n\nauto disposable = traceDispose(sub.doSubscribe!(_ => putCount++));\n\nsub.put(1);\nsub.completed();\n\nassert(putCount == 1);\nassert(!disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L937_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L957_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nalias traceDispose = withDisposed!(() => disposed = true);\n\nauto disposable = traceDispose(sub.doSubscribe!(_ => putCount++));\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L957_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L977_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nauto disposable = sub.doSubscribe!(_ => putCount++).withDisposed(() {\n disposed = true;\n});\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L977_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L997_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!((int) { })\n .withDisposed!(() { disposedCount++; });\n\ndisposable.dispose();\ndisposable.dispose();\n\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L997_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L1014_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t putCount = 0;\n\nbool disposed = false;\nauto disposable = sub.doSubscribe!(_ => putCount++).withDisposed(() {\n disposed = true;\n});\n\nsub.put(1);\ndisposable.dispose();\n\nassert(putCount == 1);\nassert(disposed);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L1014_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L1034_C1)\n---\nimport rx;\n\nauto sub = new SubjectObject!int;\nsize_t disposedCount = 0;\n\nauto disposable = sub.doSubscribe!((int) { }).withDisposed(() {\n disposedCount++;\n});\n\ndisposable.dispose();\ndisposable.dispose();\n\nassert(disposedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L1034_C1)\n" + }, + { + "constraint": "isDisposable!TDisposable", "parameters": [ { - "name": "f", - "kind": "alias" + "kind": "type", + "name": "TDisposable" } ], - "char": 1, - "kind": "template" - }, - { + "line": 911, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "withDisposed", - "line": 885, - "type": "(auto ref TDisposable disposable, void delegate() disposed)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "disposable", "type": "TDisposable", "storageClass": [ "auto", "ref" - ] + ], + "name": "disposable" }, { - "name": "disposed", - "type": "void delegate()" + "type": "void delegate()", + "name": "disposed" } ], - "endline": 889, - "char": 6, + "line": 911, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "withDisposed", + "type": "(auto ref TDisposable disposable, void delegate() disposed)", + "endchar": 1, + "endline": 915 } ], "name": "withDisposed", - "line": 885, - "comment": "ditto\n", - "parameters": [ - { - "name": "TDisposable", - "kind": "type" - } - ], - "constraint": "isDisposable!TDisposable", - "char": 6, - "kind": "template" + "comment": "ditto\n" } ], "comment": " This module defines the concept of Disposable.\n", - "kind": "module" + "name": "rx.disposable" }, { + "kind": "module", "file": "source\\rx\\observable.d", - "name": "rx.observable", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "T" + }, + { + "kind": "type", + "name": "E" + } + ], + "line": 14, + "kind": "template", + "char": 1, "members": [ { - "name": "isObservable", - "line": 16, - "deco": "b", - "init": "is(T.ElementType : E) && is(typeof(()\r\n{\r\nT observable = void;\r\nObserver!E observer = void;\r\nauto d = observable.subscribe(observer);\r\nstatic assert(isDisposable!(typeof(d)));\r\n}\r\n()))", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 16, + "kind": "variable", + "char": 15, + "name": "isObservable", + "deco": "b", + "init": "is(T.ElementType : E) && is(typeof(()\r\n{\r\nT observable = void;\r\nObserver!E observer = void;\r\nauto d = observable.subscribe(observer);\r\nstatic assert(isDisposable!(typeof(d)));\r\n}\r\n()))" } ], "name": "isObservable", - "line": 14, - "comment": "Tests if something is a Observable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L33_C1)\n---\nstruct TestObservable\n{\n alias ElementType = int;\n\n Disposable subscribe(T)(T observer)\n {\n static assert(isObserver!(T, int));\n return null;\n }\n}\n\nstatic assert(isObservable!(TestObservable));\nstatic assert(isObservable!(TestObservable, int));\nstatic assert(!isObservable!(TestObservable, Object));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L33_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L52_C1)\n---\nstatic assert(isObservable!(Observable!int));\nstatic assert(!isObservable!(Observer!int));\nstatic assert(!isObservable!(string));\nstatic assert(!isObservable!(Object));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L52_C1)\n", + "comment": "Tests if something is a Observable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L33_C1)\n---\nstruct TestObservable\n{\n alias ElementType = int;\n\n Disposable subscribe(T)(T observer)\n {\n static assert(isObserver!(T, int));\n return null;\n }\n}\n\nstatic assert(isObservable!(TestObservable));\nstatic assert(isObservable!(TestObservable, int));\nstatic assert(!isObservable!(TestObservable, Object));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L33_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L52_C1)\n---\nstatic assert(isObservable!(Observable!int));\nstatic assert(!isObservable!(Observer!int));\nstatic assert(!isObservable!(string));\nstatic assert(!isObservable!(Object));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L52_C1)\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" - }, - { - "name": "E", - "kind": "type" + "kind": "type", + "name": "TObservable" } ], + "line": 24, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "isObservable", - "line": 26, - "deco": "b", - "init": "__traits(compiles, ()\r\n{\r\nstatic assert(isObservable!(TObservable, TObservable.ElementType));\r\n}\r\n)", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 26, + "kind": "variable", + "char": 15, + "name": "isObservable", + "deco": "b", + "init": "__traits(compiles, ()\r\n{\r\nstatic assert(isObservable!(TObservable, TObservable.ElementType));\r\n}\r\n)" } ], "name": "isObservable", - "line": 24, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" + "kind": "type", + "name": "TObservable" + }, + { + "kind": "type", + "name": "TObserver" } ], + "line": 61, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "isSubscribable", - "line": 63, - "deco": "b", - "init": "is(typeof(()\r\n{\r\nstatic assert(isOutputRange!(TObserver, TObservable.ElementType));\r\nTObservable observable = void;\r\nTObserver observer = void;\r\nauto d = observable.subscribe(observer);\r\nstatic assert(isDisposable!(typeof(d)));\r\n}\r\n()))", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 63, + "kind": "variable", + "char": 15, + "name": "isSubscribable", + "deco": "b", + "init": "is(typeof(()\r\n{\r\nstatic assert(isOutputRange!(TObserver, TObservable.ElementType));\r\nTObservable observable = void;\r\nTObserver observer = void;\r\nauto d = observable.subscribe(observer);\r\nstatic assert(isDisposable!(typeof(d)));\r\n}\r\n()))" } ], "name": "isSubscribable", - "line": 61, - "comment": "Test if the observer can subscribe to the observable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L73_C1)\n---\nstruct TestDisposable\n{\n void dispose()\n {\n }\n}\n\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void completed()\n {\n }\n\n void failure(Exception e)\n {\n }\n}\n\nstruct TestObservable\n{\n alias ElementType = int;\n\n TestDisposable subscribe(TestObserver observer)\n {\n return TestDisposable();\n }\n}\n\nstatic assert(isSubscribable!(TestObservable, TestObserver));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L73_C1)\n", + "comment": "Test if the observer can subscribe to the observable.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L73_C1)\n---\nstruct TestDisposable\n{\n void dispose()\n {\n }\n}\n\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void completed()\n {\n }\n\n void failure(Exception e)\n {\n }\n}\n\nstruct TestObservable\n{\n alias ElementType = int;\n\n TestDisposable subscribe(TestObserver observer)\n {\n return TestDisposable();\n }\n}\n\nstatic assert(isSubscribable!(TestObservable, TestObserver));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L73_C1)\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" + "kind": "type", + "name": "TObservable" }, { - "name": "TObserver", - "kind": "type" + "kind": "type", + "name": "E" } ], - "char": 1, - "kind": "template" - }, - { + "line": 111, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "doSubscribe", - "line": 111, - "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate() doCompleted, void delegate(Exception) doFailure)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "doPut", - "type": "void delegate(E)" + "type": "void delegate(E)", + "name": "doPut" }, { - "name": "doCompleted", - "type": "void delegate()" + "type": "void delegate()", + "name": "doCompleted" }, { - "name": "doFailure", - "type": "void delegate(Exception)" + "type": "void delegate(Exception)", + "name": "doFailure" } ], - "endline": 115, - "char": 6, + "line": 111, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "doSubscribe", + "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate() doCompleted, void delegate(Exception) doFailure)", + "endchar": 1, + "endline": 115 } ], "name": "doSubscribe", - "line": 111, - "comment": "The helper for subscribe easier.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L172_C1)\n---\nstruct TestObservable\n{\n alias ElementType = int;\n\n auto subscribe(TObserver)(TObserver observer)\n {\n .put(observer, [0, 1, 2]);\n return NopDisposable.instance;\n }\n}\n\nTestObservable observable;\nint[] result;\nobservable.doSubscribe!(n => result ~= n);\nassert(result.length == 3);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L172_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L192_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n}\n\nstruct TestObservable1\n{\n alias ElementType = int;\n Disposable subscribe(Observer!int observer)\n {\n return null;\n }\n}\n\nstruct TestObservable2\n{\n alias ElementType = int;\n Disposable subscribe(T)(T observer)\n {\n return null;\n }\n}\n\nTestObservable1 o1;\nauto d0 = o1.doSubscribe((int n) { }, () { }, (Exception e) { });\nauto d1 = o1.doSubscribe((int n) { }, () { });\nauto d2 = o1.doSubscribe((int n) { }, (Exception e) { });\nauto d3 = o1.doSubscribe((int n) { });\nauto d4 = o1.doSubscribe(TestObserver());\nTestObservable2 o2;\nauto d5 = o2.doSubscribe((int n) { }, () { }, (Exception e) { });\nauto d6 = o2.doSubscribe((int n) { }, () { });\nauto d7 = o2.doSubscribe((int n) { }, (Exception e) { });\nauto d8 = o2.doSubscribe((int n) { });\nauto d9 = o2.doSubscribe(TestObserver());\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L192_C1)\n", + "comment": "The helper for subscribe easier.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L172_C1)\n---\nstruct TestObservable\n{\n alias ElementType = int;\n\n auto subscribe(TObserver)(TObserver observer)\n {\n .put(observer, [0, 1, 2]);\n return NopDisposable.instance;\n }\n}\n\nTestObservable observable;\nint[] result;\nobservable.doSubscribe!(n => result ~= n);\nassert(result.length == 3);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L172_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L192_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n}\n\nstruct TestObservable1\n{\n alias ElementType = int;\n Disposable subscribe(Observer!int observer)\n {\n return null;\n }\n}\n\nstruct TestObservable2\n{\n alias ElementType = int;\n Disposable subscribe(T)(T observer)\n {\n return null;\n }\n}\n\nTestObservable1 o1;\nauto d0 = o1.doSubscribe((int n) { }, () { }, (Exception e) { });\nauto d1 = o1.doSubscribe((int n) { }, () { });\nauto d2 = o1.doSubscribe((int n) { }, (Exception e) { });\nauto d3 = o1.doSubscribe((int n) { });\nauto d4 = o1.doSubscribe(TestObserver());\nTestObservable2 o2;\nauto d5 = o2.doSubscribe((int n) { }, () { }, (Exception e) { });\nauto d6 = o2.doSubscribe((int n) { }, () { });\nauto d7 = o2.doSubscribe((int n) { }, (Exception e) { });\nauto d8 = o2.doSubscribe((int n) { });\nauto d9 = o2.doSubscribe(TestObserver());\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L192_C1)\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" + "kind": "type", + "name": "TObservable" }, { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 117, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "doSubscribe", - "line": 117, - "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate() doCompleted)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "doPut", - "type": "void delegate(E)" + "type": "void delegate(E)", + "name": "doPut" }, { - "name": "doCompleted", - "type": "void delegate()" + "type": "void delegate()", + "name": "doCompleted" } ], - "endline": 121, - "char": 6, + "line": 117, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "doSubscribe", + "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate() doCompleted)", + "endchar": 1, + "endline": 121 } ], "name": "doSubscribe", - "line": 117, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" + "kind": "type", + "name": "TObservable" }, { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 123, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "doSubscribe", - "line": 123, - "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate(Exception) doFailure)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "doPut", - "type": "void delegate(E)" + "type": "void delegate(E)", + "name": "doPut" }, { - "name": "doFailure", - "type": "void delegate(Exception)" + "type": "void delegate(Exception)", + "name": "doFailure" } ], - "endline": 127, - "char": 6, + "line": 123, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "doSubscribe", + "type": "(auto ref TObservable observable, void delegate(E) doPut, void delegate(Exception) doFailure)", + "endchar": 1, + "endline": 127 } ], "name": "doSubscribe", - "line": 123, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" + "kind": "alias", + "name": "f" }, { - "name": "E", - "kind": "type" + "kind": "type", + "name": "TObservable" } ], + "line": 129, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "doSubscribe", - "line": 129, - "type": "(auto ref TObservable observable)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 151, - "char": 6, + "line": 129, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "doSubscribe", + "type": "(auto ref TObservable observable)", + "endchar": 1, + "endline": 151 } ], "name": "doSubscribe", - "line": 129, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "f", - "kind": "alias" + "kind": "type", + "name": "TObservable" }, { - "name": "TObservable", - "kind": "type" + "kind": "type", + "name": "TObserver" } ], + "line": 153, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "doSubscribe", - "line": 153, - "type": "(auto ref TObservable observable, auto ref TObserver observer)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observable", "type": "TObservable", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" }, { - "name": "observer", "type": "TObserver", "storageClass": [ "auto", "ref" - ] + ], + "name": "observer" } ], - "endline": 170, - "char": 6, + "line": 153, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "doSubscribe", + "type": "(auto ref TObservable observable, auto ref TObserver observer)", + "endchar": 1, + "endline": 170 } ], "name": "doSubscribe", - "line": 153, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "TObservable", - "kind": "type" - }, - { - "name": "TObserver", - "kind": "type" + "kind": "type", + "name": "E" } ], - "char": 6, - "kind": "template" - }, - { + "line": 268, + "kind": "template", + "char": 1, "members": [ { - "name": "Observable", - "line": 268, - "members": [], + "kind": "interface", "char": 1, - "kind": "interface" + "members": [], + "line": 268, + "name": "Observable" } ], "name": "Observable", - "line": 268, - "comment": "Wrapper for Observable objects.\n", + "comment": "Wrapper for Observable objects.\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "R" + }, + { + "kind": "type", + "name": "E" } ], + "line": 294, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "ObservableObject", - "line": 294, - "members": [], + "kind": "class", "char": 1, - "kind": "class" + "members": [], + "line": 294, + "name": "ObservableObject" } ], "name": "ObservableObject", - "line": 294, - "comment": "Class that implements Observable interface and wraps the subscribe method in virtual function.\n", + "comment": "Class that implements Observable interface and wraps the subscribe method in virtual function.\n" + }, + { "parameters": [ { - "name": "R", - "kind": "type" - }, - { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 313, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { + "parameters": [ + { + "kind": "type", + "name": "R" + } + ], + "line": 315, + "kind": "template", + "char": 18, "members": [ { - "endchar": 5, - "name": "observableObject", - "line": 315, - "type": "Observable!E(auto ref R observable)", "parameters": [ { - "name": "observable", "type": "R", "storageClass": [ "auto", "ref" - ] + ], + "name": "observable" } ], - "endline": 325, + "line": 315, + "kind": "function", "char": 18, - "kind": "function" - } - ], - "name": "observableObject", - "line": 315, - "parameters": [ - { - "name": "R", - "kind": "type" + "name": "observableObject", + "type": "Observable!E(auto ref R observable)", + "endchar": 5, + "endline": 325 } ], - "char": 18, - "kind": "template" + "name": "observableObject" } ], "name": "observableObject", - "line": 313, - "comment": "Wraps subscribe method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L328_C1)\n---\nint subscribeCount = 0;\nclass TestObservable : Observable!int\n{\n Disposable subscribe(Observer!int observer)\n {\n subscribeCount++;\n return NopDisposable.instance;\n }\n}\n\nauto test = new TestObservable;\nauto observable = observableObject!int(test);\nassert(observable is test);\nassert(subscribeCount == 0);\nauto d = observable.subscribe(null);\nassert(subscribeCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L328_C1)\n", + "comment": "Wraps subscribe method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L328_C1)\n---\nint subscribeCount = 0;\nclass TestObservable : Observable!int\n{\n Disposable subscribe(Observer!int observer)\n {\n subscribeCount++;\n return NopDisposable.instance;\n }\n}\n\nauto test = new TestObservable;\nauto observable = observableObject!int(test);\nassert(observable is test);\nassert(subscribeCount == 0);\nauto d = observable.subscribe(null);\nassert(subscribeCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L328_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" + }, + { + "kind": "alias", + "name": "f" } ], - "char": 1, - "kind": "template" - }, - { + "line": 444, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "defer", - "line": 444, - "type": "()", - "endline": 473, - "char": 6, - "kind": "function", "storageClass": [ "auto" - ] + ], + "line": 444, + "kind": "function", + "char": 6, + "name": "defer", + "type": "()", + "endchar": 1, + "endline": 473 } ], "name": "defer", - "line": 444, - "comment": "Create observable by function that template parameter.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L475_C1)\n---\nauto sub = defer!(int, (observer) {\n observer.put(1);\n observer.put(2);\n observer.put(3);\n observer.completed();\n});\n\nint countPut = 0;\nint countCompleted = 0;\nstruct A\n{\n void put(int n)\n {\n countPut++;\n }\n\n void completed()\n {\n countCompleted++;\n }\n}\n\nassert(countPut == 0);\nassert(countCompleted == 0);\nauto d = sub.doSubscribe(A());\nassert(countPut == 3);\nassert(countCompleted == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L475_C1)\n", + "comment": "Create observable by function that template parameter.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L475_C1)\n---\nauto sub = defer!(int, (observer) {\n observer.put(1);\n observer.put(2);\n observer.put(3);\n observer.completed();\n});\n\nint countPut = 0;\nint countCompleted = 0;\nstruct A\n{\n void put(int n)\n {\n countPut++;\n }\n\n void completed()\n {\n countCompleted++;\n }\n}\n\nassert(countPut == 0);\nassert(countCompleted == 0);\nauto d = sub.doSubscribe(A());\nassert(countPut == 3);\nassert(countCompleted == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L475_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" - }, - { - "name": "f", - "kind": "alias" + "kind": "type", + "name": "E" } ], + "line": 792, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "empty", - "line": 792, - "type": "()", - "endline": 809, - "char": 6, - "kind": "function", "storageClass": [ "auto" - ] + ], + "line": 792, + "kind": "function", + "char": 6, + "name": "empty", + "type": "()", + "endchar": 1, + "endline": 809 } ], "name": "empty", - "line": 792, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 822, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "never", - "line": 822, - "type": "()", - "endline": 835, - "char": 6, - "kind": "function", "storageClass": [ "auto" - ] + ], + "line": 822, + "kind": "function", + "char": 6, + "name": "never", + "type": "()", + "endchar": 1, + "endline": 835 } ], "name": "never", - "line": 822, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 845, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "error", - "line": 845, - "type": "(auto ref Exception e)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "e", "type": "Exception", "storageClass": [ "auto", "ref" - ] + ], + "name": "e" } ], - "endline": 869, - "char": 6, + "line": 845, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "error", + "type": "(auto ref Exception e)", + "endchar": 1, + "endline": 869 } ], "name": "error", - "line": 845, - "comment": "\n", + "comment": "\n" + }, + { + "constraint": "isInputRange!R", "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "R" } ], + "line": 882, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "from", - "line": 882, - "type": "(auto ref R input)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "input", "type": "R", "storageClass": [ "auto", "ref" - ] + ], + "name": "input" } ], - "endline": 906, - "char": 6, + "line": 882, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "from", + "type": "(auto ref R input)", + "endchar": 1, + "endline": 906 } ], "name": "from", - "line": 882, - "comment": "\n", - "parameters": [ - { - "name": "R", - "kind": "type" - } - ], - "constraint": "isInputRange!R", - "char": 6, - "kind": "template" + "comment": "\n" }, { - "name": "asObservable", + "kind": "alias", "line": 908, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L911_C1)\n---\nimport std.range : iota;\n\nauto obs = from(iota(10));\nauto res = new int[10];\nauto d = obs.subscribe(res[]);\nscope (exit)\n d.dispose();\n\nassert(res.length == 10);\nassert(res[0] == 0);\nassert(res[9] == 9);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L911_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L927_C1)\n---\nimport std.range : iota;\n\nauto obs = iota(10).asObservable();\nauto res = new int[10];\nauto d = obs.subscribe(res[]);\nscope (exit)\n d.dispose();\n\nassert(res.length == 10);\nassert(res[0] == 0);\nassert(res[9] == 9);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L927_C1)\n", "char": 1, - "kind": "alias" + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L911_C1)\n---\nimport std.range : iota;\n\nauto obs = from(iota(10));\nauto res = new int[10];\nauto d = obs.subscribe(res[]);\nscope (exit)\n d.dispose();\n\nassert(res.length == 10);\nassert(res[0] == 0);\nassert(res[9] == 9);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L911_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L927_C1)\n---\nimport std.range : iota;\n\nauto obs = iota(10).asObservable();\nauto res = new int[10];\nauto d = obs.subscribe(res[]);\nscope (exit)\n d.dispose();\n\nassert(res.length == 10);\nassert(res[0] == 0);\nassert(res[9] == 9);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L927_C1)\n", + "name": "asObservable" } ], "comment": " This module defines the concept of Observable.\n", - "kind": "module" + "name": "rx.observable" }, { + "kind": "module", "file": "source\\rx\\observer.d", - "name": "rx.observer", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 10, + "kind": "template", + "char": 1, "members": [ { - "name": "hasCompleted", - "line": 13, - "deco": "b", - "init": "is(typeof(()\r\n{\r\nT observer = void;\r\nobserver.completed();\r\n}\r\n()))", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 13, + "kind": "variable", + "char": 15, + "name": "hasCompleted", + "deco": "b", + "init": "is(typeof(()\r\n{\r\nT observer = void;\r\nobserver.completed();\r\n}\r\n()))" } ], "name": "hasCompleted", - "line": 10, - "comment": "Tests if something has completed method.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L20_C1)\n---\nstruct A\n{\n void completed();\n}\n\nstruct B\n{\n void _completed();\n}\n\nstatic assert(hasCompleted!A);\nstatic assert(!hasCompleted!B);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L20_C1)\n", + "comment": "Tests if something has completed method.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L20_C1)\n---\nstruct A\n{\n void completed();\n}\n\nstruct B\n{\n void _completed();\n}\n\nstatic assert(hasCompleted!A);\nstatic assert(!hasCompleted!B);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L20_C1)\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "kind": "type", + "name": "T" } ], + "line": 37, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "hasFailure", - "line": 40, - "deco": "b", - "init": "is(typeof(()\r\n{\r\nT observer = void;\r\nException e = void;\r\nobserver.failure(e);\r\n}\r\n()))", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 40, + "kind": "variable", + "char": 15, + "name": "hasFailure", + "deco": "b", + "init": "is(typeof(()\r\n{\r\nT observer = void;\r\nException e = void;\r\nobserver.failure(e);\r\n}\r\n()))" } ], "name": "hasFailure", - "line": 37, - "comment": "Tests if something has failure method.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L48_C1)\n---\nstruct A\n{\n void failure(Exception e);\n}\n\nstruct B\n{\n void _failure(Exception e);\n}\n\nstruct C\n{\n void failure();\n}\n\nstatic assert(hasFailure!A);\nstatic assert(!hasFailure!B);\nstatic assert(!hasFailure!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L48_C1)\n", + "comment": "Tests if something has failure method.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L48_C1)\n---\nstruct A\n{\n void failure(Exception e);\n}\n\nstruct B\n{\n void _failure(Exception e);\n}\n\nstruct C\n{\n void failure();\n}\n\nstatic assert(hasFailure!A);\nstatic assert(!hasFailure!B);\nstatic assert(!hasFailure!C);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L48_C1)\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "kind": "type", + "name": "T" + }, + { + "kind": "type", + "name": "E" } ], + "line": 71, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "isObserver", - "line": 73, - "deco": "b", - "init": "isOutputRange!(T, E) && hasCompleted!T && hasFailure!T", - "char": 15, - "kind": "variable", "storageClass": [ "enum" - ] + ], + "line": 73, + "kind": "variable", + "char": 15, + "name": "isObserver", + "deco": "b", + "init": "isOutputRange!(T, E) && hasCompleted!T && hasFailure!T" } ], "name": "isObserver", - "line": 71, - "comment": "Tests if something is Observer.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L76_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void completed()\n {\n }\n\n void failure(Exception e)\n {\n }\n}\n\nstatic assert(isObserver!(TestObserver, int));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L76_C1)\n", + "comment": "Tests if something is Observer.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L76_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void completed()\n {\n }\n\n void failure(Exception e)\n {\n }\n}\n\nstatic assert(isObserver!(TestObserver, int));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L76_C1)\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" - }, - { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 97, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "Observer", - "line": 97, + "kind": "interface", + "char": 1, "members": [ { - "name": "completed", + "kind": "function", "line": 100, - "comment": "\n", - "type": "void()", "char": 10, - "kind": "function" + "type": "void()", + "comment": "\n", + "name": "completed" }, { - "name": "failure", - "line": 102, - "comment": "\n", - "type": "void(Exception e)", "parameters": [ { - "name": "e", - "type": "Exception" + "type": "Exception", + "name": "e" } ], + "line": 102, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception e)", + "comment": "\n" } ], - "char": 1, - "kind": "interface" + "line": 97, + "name": "Observer" } ], "name": "Observer", - "line": 97, - "comment": "Wraps completed and failure method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L105_C1)\n---\nalias TObserver = Observer!byte;\nstatic assert(isObserver!(TObserver, byte));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L105_C1)\n", + "comment": "Wraps completed and failure method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L105_C1)\n---\nalias TObserver = Observer!byte;\nstatic assert(isObserver!(TObserver, byte));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L105_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "R" + }, + { + "kind": "tuple", + "name": "E" } ], + "line": 112, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "ObserverObject", - "line": 112, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "completed", "line": 123, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "completed", "type": "void()", + "endchar": 5, "endline": 129, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "failure", - "line": 131, - "comment": "\n", - "type": "void(Exception e)", "parameters": [ { - "name": "e", - "type": "Exception" + "type": "Exception", + "name": "e" } ], - "endline": 137, + "line": 131, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception e)", + "endchar": 5, + "endline": 137, + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 112, + "name": "ObserverObject" } ], "name": "ObserverObject", - "line": 112, - "comment": "Class that implements Observer interface and wraps the completed and failure method in virtual functions. This class extends the OutputRangeObject.\n", + "comment": "Class that implements Observer interface and wraps the completed and failure method in virtual functions. This class extends the OutputRangeObject.\n" + }, + { "parameters": [ { - "name": "R", - "kind": "type" - }, - { - "name": "E", - "kind": "tuple" + "kind": "type", + "name": "E" } ], + "line": 144, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { + "parameters": [ + { + "kind": "type", + "name": "R" + } + ], + "line": 146, + "kind": "template", + "char": 27, "members": [ { - "endchar": 5, - "name": "observerObject", - "line": 146, - "type": "ObserverObject!(R, E)(R range)", "parameters": [ { - "name": "range", - "type": "R" + "type": "R", + "name": "range" } ], - "endline": 149, + "line": 146, + "kind": "function", "char": 27, - "kind": "function" - } - ], - "name": "observerObject", - "line": 146, - "parameters": [ - { - "name": "R", - "kind": "type" + "name": "observerObject", + "type": "ObserverObject!(R, E)(R range)", + "endchar": 5, + "endline": 149 } ], - "char": 27, - "kind": "template" + "name": "observerObject" } ], "name": "observerObject", - "line": 144, - "comment": "Wraps subscribe method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L152_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void put(Object obj)\n {\n }\n}\n\nObserver!int observer = observerObject!int(TestObserver());\nobserver.put(0);\nobserver.completed();\nobserver.failure(null);\nstatic assert(isObserver!(typeof(observer), int));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L152_C1)\n", + "comment": "Wraps subscribe method in virtual function.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L152_C1)\n---\nstruct TestObserver\n{\n void put(int n)\n {\n }\n\n void put(Object obj)\n {\n }\n}\n\nObserver!int observer = observerObject!int(TestObserver());\nobserver.put(0);\nobserver.completed();\nobserver.failure(null);\nstatic assert(isObserver!(typeof(observer), int));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L152_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], - "char": 1, - "kind": "template" - }, - { + "line": 310, + "kind": "template", + "char": 7, "members": [ { - "name": "NopObserver", - "line": 310, + "kind": "class", + "char": 7, "members": [ { - "endchar": 5, - "name": "instance", + "storageClass": [ + "static" + ], "line": 332, - "comment": "\n", + "kind": "function", + "char": 23, + "name": "instance", "type": "Observer!E()", + "endchar": 5, "endline": 338, - "char": 23, - "kind": "function", - "storageClass": [ - "static" - ] + "comment": "\n" } ], - "char": 7, - "kind": "class" + "line": 310, + "name": "NopObserver" } ], "name": "NopObserver", - "line": 310, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L341_C1)\n---\nObserver!int o1 = NopObserver!int.instance;\nObserver!int o2 = NopObserver!int.instance;\nassert(o1 !is null);\nassert(o1 is o2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L341_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L341_C1)\n---\nObserver!int o1 = NopObserver!int.instance;\nObserver!int o2 = NopObserver!int.instance;\nassert(o1 !is null);\nassert(o1 is o2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L341_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 350, + "kind": "template", "char": 7, - "kind": "template" - }, - { "members": [ { - "name": "DoneObserver", - "line": 350, - "members": [], + "kind": "class", "char": 7, - "kind": "class" + "members": [], + "line": 350, + "name": "DoneObserver" } ], "name": "DoneObserver", - "line": 350, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L398_C1)\n---\nObserver!int o1 = DoneObserver!int.instance;\nObserver!int o2 = DoneObserver!int.instance;\nassert(o1 !is null);\nassert(o1 is o2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L398_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L398_C1)\n---\nObserver!int o1 = DoneObserver!int.instance;\nObserver!int o2 = DoneObserver!int.instance;\nassert(o1 !is null);\nassert(o1 is o2);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L398_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], - "char": 7, - "kind": "template" - }, - { + "line": 414, + "kind": "template", + "char": 8, "members": [ { - "name": "CompositeObserver", - "line": 414, + "kind": "class", + "char": 8, "members": [ { - "endchar": 5, - "name": "put", - "line": 429, - "comment": "\n", - "type": "void(E obj)", "parameters": [ { - "name": "obj", - "type": "E" + "type": "E", + "name": "obj" } ], - "endline": 433, + "line": 429, + "kind": "function", "char": 10, - "kind": "function" + "name": "put", + "type": "void(E obj)", + "endchar": 5, + "endline": 433, + "comment": "\n" }, { - "endchar": 5, - "name": "completed", "line": 435, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "completed", "type": "void()", + "endchar": 5, "endline": 439, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "failure", - "line": 441, - "comment": "\n", - "type": "void(Exception e)", "parameters": [ { - "name": "e", - "type": "Exception" + "type": "Exception", + "name": "e" } ], - "endline": 445, + "line": 441, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception e)", + "endchar": 5, + "endline": 445, + "comment": "\n" }, { - "endchar": 5, - "name": "add", - "line": 447, - "comment": "\n", - "type": "CompositeObserver!E(Observer!E observer)", "parameters": [ { - "name": "observer", - "type": "Observer!E" + "type": "Observer!E", + "name": "observer" } ], - "endline": 450, + "line": 447, + "kind": "function", "char": 25, - "kind": "function" + "name": "add", + "type": "CompositeObserver!E(Observer!E observer)", + "endchar": 5, + "endline": 450, + "comment": "\n" }, { - "endchar": 5, - "name": "remove", - "line": 452, - "comment": "\n", - "type": "Observer!E(Observer!E observer)", "parameters": [ { - "name": "observer", - "type": "Observer!E" + "type": "Observer!E", + "name": "observer" } ], - "endline": 466, + "line": 452, + "kind": "function", "char": 16, - "kind": "function" + "name": "remove", + "type": "Observer!E(Observer!E observer)", + "endchar": 5, + "endline": 466, + "comment": "\n" }, { - "endchar": 5, - "name": "empty", + "storageClass": [ + "static" + ], "line": 470, - "comment": "\n", + "kind": "function", + "char": 32, + "name": "empty", "type": "CompositeObserver!E()", + "endchar": 5, "endline": 476, - "char": 32, - "kind": "function", - "storageClass": [ - "static" - ] + "comment": "\n" } ], - "char": 8, - "kind": "class" + "line": 414, + "name": "CompositeObserver" } ], "name": "CompositeObserver", - "line": 414, - "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L482_C1)\n---\nint count = 0;\nstruct TestObserver\n{\n void put(int n)\n {\n count++;\n }\n}\n\nauto c1 = new CompositeObserver!int;\nc1.put(0);\nauto o1 = observerObject!int(TestObserver());\nauto c2 = c1.add(o1);\nc1.put(0);\nassert(count == 0);\nc2.put(0);\nassert(count == 1);\nauto c3 = c2.add(observerObject!int(TestObserver()));\nc3.put(0);\nassert(count == 3);\nauto c4 = c3.remove(o1);\nc4.put(0);\nassert(count == 4);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L482_C1)\n", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L482_C1)\n---\nint count = 0;\nstruct TestObserver\n{\n void put(int n)\n {\n count++;\n }\n}\n\nauto c1 = new CompositeObserver!int;\nc1.put(0);\nauto o1 = observerObject!int(TestObserver());\nauto c2 = c1.add(o1);\nc1.put(0);\nassert(count == 0);\nc2.put(0);\nassert(count == 1);\nauto c3 = c2.add(observerObject!int(TestObserver()));\nc3.put(0);\nassert(count == 3);\nauto c4 = c3.remove(o1);\nc4.put(0);\nassert(count == 4);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L482_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], - "char": 8, - "kind": "template" - }, - { + "line": 527, + "kind": "template", + "char": 6, "members": [ { - "endchar": 1, - "name": "makeObserver", - "line": 527, - "type": "(void delegate(E) doPut, void delegate() doCompleted, void delegate(Exception) doFailure)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "doPut", - "type": "void delegate(E)" + "type": "void delegate(E)", + "name": "doPut" }, { - "name": "doCompleted", - "type": "void delegate()" + "type": "void delegate()", + "name": "doCompleted" }, { - "name": "doFailure", - "type": "void delegate(Exception)" + "type": "void delegate(Exception)", + "name": "doFailure" } ], - "endline": 566, - "char": 6, + "line": 527, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "makeObserver", + "type": "(void delegate(E) doPut, void delegate() doCompleted, void delegate(Exception) doFailure)", + "endchar": 1, + "endline": 566 } ], "name": "makeObserver", - "line": 527, - "comment": "The helper for the own observer.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L632_C1)\n---\nint countPut = 0;\nint countCompleted = 0;\nint countFailure = 0;\n\nauto observer = makeObserver((int) { countPut++; }, () { countCompleted++; }, (Exception) {\n countFailure++;\n});\n\n.put(observer, 0);\nassert(countPut == 1);\n\nobserver.completed();\nassert(countCompleted == 1);\n\nobserver.failure(null);\nassert(countFailure == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L632_C1)\n", + "comment": "The helper for the own observer.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L632_C1)\n---\nint countPut = 0;\nint countCompleted = 0;\nint countFailure = 0;\n\nauto observer = makeObserver((int) { countPut++; }, () { countCompleted++; }, (Exception) {\n countFailure++;\n});\n\n.put(observer, 0);\nassert(countPut == 1);\n\nobserver.completed();\nassert(countCompleted == 1);\n\nobserver.failure(null);\nassert(countFailure == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L632_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 568, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "makeObserver", - "line": 568, - "type": "(void delegate(E) doPut, void delegate() doCompleted)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "doPut", - "type": "void delegate(E)" + "type": "void delegate(E)", + "name": "doPut" }, { - "name": "doCompleted", - "type": "void delegate()" + "type": "void delegate()", + "name": "doCompleted" } ], - "endline": 598, - "char": 6, + "line": 568, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 6, + "name": "makeObserver", + "type": "(void delegate(E) doPut, void delegate() doCompleted)", + "endchar": 1, + "endline": 598 } ], "name": "makeObserver", - "line": 568, - "comment": "ditto\n", + "comment": "ditto\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 600, + "kind": "template", "char": 6, - "kind": "template" - }, - { "members": [ { - "endchar": 1, - "name": "makeObserver", + "storageClass": [ + "auto" + ], + "parameters": [ + { + "type": "void delegate(E)", + "name": "doPut" + }, + { + "type": "void delegate(Exception)", + "name": "doFailure" + } + ], "line": 600, + "kind": "function", + "char": 6, + "name": "makeObserver", "type": "(void delegate(E) doPut, void delegate(Exception) doFailure)", + "endchar": 1, + "endline": 630 + } + ], + "name": "makeObserver", + "comment": "ditto\n" + } + ], + "comment": " This module defines the concept of Observer.\n", + "name": "rx.observer" + }, + { + "kind": "module", + "file": "source\\rx\\range\\drop.d", + "members": [ + { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 18, + "kind": "template", + "char": 6, + "members": [ + { + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "doPut", - "type": "void delegate(E)" + "type": "TObservable", + "storageClass": [ + "auto", + "ref" + ], + "name": "observable" }, { - "name": "doFailure", - "type": "void delegate(Exception)" + "type": "size_t", + "name": "n" } ], - "endline": 630, - "char": 6, + "line": 18, "kind": "function", + "char": 6, + "name": "drop", + "type": "(auto ref TObservable observable, size_t n)", + "endchar": 1, + "endline": 88 + } + ], + "name": "drop", + "comment": "Creates the observable that results from discarding the first n elements from the given source.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L90_C1)\n---\nimport rx.subject;\n\nauto subject = new SubjectObject!int;\nauto dropped = subject.drop(1);\nstatic assert(isObservable!(typeof(dropped), int));\n\nimport std.array : appender;\n\nauto buf = appender!(int[]);\nauto disposable = dropped.subscribe(buf);\n\nsubject.put(0);\nassert(buf.data.length == 0);\nsubject.put(1);\nassert(buf.data.length == 1);\n\nauto buf2 = appender!(int[]);\ndropped.subscribe(buf2);\nassert(buf2.data.length == 0);\nsubject.put(2);\nassert(buf2.data.length == 0);\nassert(buf.data.length == 2);\nsubject.put(3);\nassert(buf2.data.length == 1);\nassert(buf.data.length == 3);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L90_C1)\n" + } + ], + "comment": " This module is a submodule of rx.range.\n It provides basic operation a 'drop'\n", + "name": "rx.range.drop" + }, + { + "kind": "module", + "file": "source\\rx\\range\\take.d", + "members": [ + { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + } + ], + "line": 18, + "kind": "template", + "char": 6, + "members": [ + { "storageClass": [ "auto" - ] + ], + "parameters": [ + { + "type": "TObservable", + "storageClass": [ + "auto", + "ref" + ], + "name": "observable" + }, + { + "type": "size_t", + "name": "n" + } + ], + "line": 18, + "kind": "function", + "char": 6, + "name": "take", + "type": "(auto ref TObservable observable, size_t n)", + "endchar": 1, + "endline": 99 } ], - "name": "makeObserver", - "line": 600, - "comment": "ditto\n", + "name": "take", + "comment": "Creates a sub-observable consisting of only up to the first n elements of the given source.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L101_C1)\n---\nimport std.array;\nimport rx.subject;\n\nauto pub = new SubjectObject!int;\nauto sub = appender!(int[]);\n\nauto d = pub.take(2).subscribe(sub);\nforeach (i; 0 .. 10)\n{\n pub.put(i);\n}\n\nimport std.algorithm;\n\nassert(equal(sub.data, [0, 1]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L101_C1)\n" + } + ], + "comment": " This module is a submodule of rx.range.\n It provides basic operation a 'take'\n", + "name": "rx.range.take" + }, + { + "kind": "module", + "file": "source\\rx\\range\\takeLast.d", + "members": [ + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "TObservable" } ], + "line": 18, + "kind": "template", "char": 6, - "kind": "template" + "members": [ + { + "storageClass": [ + "auto" + ], + "parameters": [ + { + "type": "TObservable", + "storageClass": [ + "auto", + "ref" + ], + "name": "observable" + } + ], + "line": 18, + "kind": "function", + "char": 6, + "name": "takeLast", + "type": "(auto ref TObservable observable)", + "endchar": 1, + "endline": 88 + } + ], + "name": "takeLast", + "comment": "Creates a observable that take only a last element of the given source.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L90_C1)\n---\nimport rx.subject;\n\nauto sub = new SubjectObject!int;\n\nint putCount = 0;\nint completedCount = 0;\nstruct TestObserver\n{\n void put(int n)\n {\n putCount++;\n }\n\n void completed()\n {\n completedCount++;\n }\n}\n\nauto d = sub.takeLast.subscribe(TestObserver());\n\nassert(putCount == 0);\nsub.put(1);\nassert(putCount == 0);\nsub.put(10);\nassert(putCount == 0);\nsub.completed();\nassert(putCount == 1);\nassert(completedCount == 1);\n\nsub.put(100);\nassert(putCount == 1);\nassert(completedCount == 1);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L90_C1)\n" } ], - "comment": " This module defines the concept of Observer.\n", - "kind": "module" + "comment": " This module is a submodule of rx.range.\n It provides basic operation a 'takeLast'\n", + "name": "rx.range.takeLast" }, { - "file": "source\\rx\\range\\package.d", - "name": "rx.range", - "members": [], - "comment": " This module defines some operations like range.\nExample:\nOverview$(DDOX_UNITTEST_HEADER __unittest_L13_C1)\n---\nimport rx : SubjectObject, observerObject, drop, take;\nimport std.algorithm : equal;\nimport std.array : appender;\nimport std.conv : to;\n\nauto subject = new SubjectObject!int;\nauto pub = subject.drop(2).take(3);\n\nauto buf = appender!(int[]);\nauto disposable = pub.subscribe(observerObject!int(buf));\n\nforeach (i; 0 .. 10)\n{\n subject.put(i);\n}\n\nauto result = buf.data;\nassert(equal(result, [2, 3, 4]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L13_C1)\n", - "kind": "module" + "kind": "module", + "file": "source\\rx\\scheduler.d", + "members": [ + { + "kind": "interface", + "line": 33, + "char": 1, + "members": [], + "comment": "\n", + "name": "Scheduler" + }, + { + "line": 38, + "kind": "interface", + "char": 1, + "members": [], + "name": "AsyncScheduler", + "interfaces": [ + "rx.scheduler.Scheduler" + ], + "comment": "\n" + }, + { + "line": 44, + "kind": "class", + "char": 1, + "members": [], + "name": "LocalScheduler", + "interfaces": [ + "rx.scheduler.Scheduler" + ], + "comment": "\n" + }, + { + "line": 53, + "kind": "class", + "char": 1, + "members": [], + "name": "ThreadScheduler", + "interfaces": [ + "rx.scheduler.AsyncScheduler" + ], + "comment": "\n" + }, + { + "line": 98, + "kind": "class", + "char": 1, + "members": [], + "name": "TaskPoolScheduler", + "interfaces": [ + "rx.scheduler.AsyncScheduler" + ], + "comment": "\n" + }, + { + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 163, + "kind": "template", + "char": 1, + "members": [ + { + "kind": "class", + "char": 1, + "members": [], + "line": 163, + "name": "HistoricalScheduler" + } + ], + "name": "HistoricalScheduler", + "comment": "\n" + }, + { + "parameters": [ + { + "kind": "type", + "name": "TScheduler" + } + ], + "line": 195, + "kind": "template", + "char": 32, + "members": [ + { + "parameters": [ + { + "type": "TScheduler", + "storageClass": [ + "auto", + "ref" + ], + "name": "scheduler" + } + ], + "line": 195, + "kind": "function", + "char": 32, + "name": "historicalScheduler", + "type": "HistoricalScheduler!TScheduler(auto ref TScheduler scheduler)", + "endchar": 1, + "endline": 198 + } + ], + "name": "historicalScheduler", + "comment": "\n" + }, + { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + }, + { + "kind": "type", + "deco": "C2rx9scheduler9Scheduler", + "name": "TScheduler" + } + ], + "line": 486, + "kind": "template", + "char": 1, + "members": [ + { + "kind": "class", + "char": 1, + "members": [], + "line": 486, + "name": "SubscribeOnObservable" + } + ], + "name": "SubscribeOnObservable", + "comment": "\n" + }, + { + "parameters": [ + { + "kind": "type", + "name": "TObservable" + }, + { + "kind": "type", + "deco": "C2rx9scheduler9Scheduler", + "name": "TScheduler" + } + ], + "line": 541, + "kind": "template", + "char": 49, + "members": [ + { + "parameters": [ + { + "type": "TObservable", + "storageClass": [ + "auto", + "ref" + ], + "name": "observable" + }, + { + "type": "TScheduler", + "storageClass": [ + "auto", + "ref" + ], + "name": "scheduler" + } + ], + "line": 541, + "kind": "function", + "char": 49, + "name": "subscribeOn", + "type": "SubscribeOnObservable!(TObservable, TScheduler)(auto ref TObservable observable, auto ref TScheduler scheduler)", + "endchar": 1, + "endline": 545 + } + ], + "name": "subscribeOn", + "comment": "\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L547_C1)\n---\nimport rx.observable : defer;\n\nauto sub = defer!int((Observer!int observer) {\n .put(observer, 100);\n return NopDisposable.instance;\n});\nauto scheduler = new LocalScheduler;\n\nauto scheduled = sub.subscribeOn(scheduler);\n\nint value = 0;\nauto d = scheduled.doSubscribe((int n) { value = n; });\nscope (exit)\n d.dispose();\n\nassert(value == 100);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L547_C1)\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L567_C1)\n---\nimport rx.observable : defer;\nimport rx.util : EventSignal;\n\nauto sub = defer!int((Observer!int observer) {\n .put(observer, 100);\n return NopDisposable.instance;\n});\nauto scheduler = new TaskPoolScheduler;\nauto scheduled = sub.subscribeOn(scheduler);\n\nint value = 0;\nauto signal = new EventSignal;\nauto d = scheduled.subscribe((int n) { value = n; signal.setSignal(); });\nscope (exit)\n d.dispose();\n\nsignal.wait();\nassert(value == 100);\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L567_C1)\n" + } + ], + "comment": " This module defines the concept of Scheduler.\n", + "name": "rx.scheduler" }, { + "kind": "module", "file": "source\\rx\\subject.d", - "name": "rx.subject", "members": [ { + "parameters": [ + { + "kind": "type", + "name": "E" + } + ], + "line": 15, + "kind": "template", + "char": 1, "members": [ { - "name": "Subject", - "line": 15, - "members": [], + "kind": "interface", "char": 1, - "kind": "interface" + "members": [], + "line": 15, + "name": "Subject" } ], "name": "Subject", - "line": 15, - "comment": "Represents an object that is both an observable sequence as well as an observer.\n", + "comment": "Represents an object that is both an observable sequence as well as an observer.\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 20, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "SubjectObject", - "line": 20, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", "line": 26, - "comment": "\n", + "kind": "constructor", + "char": 5, + "name": "this", "type": "()", + "endchar": 5, "endline": 29, - "char": 5, - "kind": "constructor" + "comment": "\n" }, { - "endchar": 5, - "name": "put", - "line": 33, - "comment": "\n", - "type": "void(E obj)", "parameters": [ { - "name": "obj", - "type": "E" + "type": "E", + "name": "obj" } ], - "endline": 37, + "line": 33, + "kind": "function", "char": 10, - "kind": "function" + "name": "put", + "type": "void(E obj)", + "endchar": 5, + "endline": 37, + "comment": "\n" }, { - "endchar": 5, - "name": "completed", "line": 39, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "completed", "type": "void()", + "endchar": 5, "endline": 53, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "failure", - "line": 55, - "comment": "\n", - "type": "void(Exception error)", "parameters": [ { - "name": "error", - "type": "Exception" + "type": "Exception", + "name": "error" } ], - "endline": 69, + "line": 55, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception error)", + "endchar": 5, + "endline": 69, + "comment": "\n" }, { + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 72, + "kind": "template", + "char": 16, "members": [ { - "endchar": 5, - "name": "subscribe", - "line": 72, - "type": "Disposable(T observer)", "parameters": [ { - "name": "observer", - "type": "T" + "type": "T", + "name": "observer" } ], - "endline": 75, + "line": 72, + "kind": "function", "char": 16, - "kind": "function" + "name": "subscribe", + "type": "Disposable(T observer)", + "endchar": 5, + "endline": 75 } ], "name": "subscribe", - "line": 72, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "type": "Observer!E", + "name": "observer" } ], + "line": 77, + "kind": "function", "char": 16, - "kind": "template" - }, - { - "endchar": 5, "name": "subscribe", - "line": 77, - "comment": "\n", "type": "Disposable(Observer!E observer)", - "parameters": [ - { - "name": "observer", - "type": "Observer!E" - } - ], + "endchar": 5, "endline": 114, - "char": 16, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "unsubscribe", - "line": 117, - "comment": "\n", - "type": "void(Observer!E observer)", "parameters": [ { - "name": "observer", - "type": "Observer!E" + "type": "Observer!E", + "name": "observer" } ], - "endline": 141, + "line": 117, + "kind": "function", "char": 10, - "kind": "function" + "name": "unsubscribe", + "type": "void(Observer!E observer)", + "endchar": 5, + "endline": 141, + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 20, + "name": "SubjectObject" } ], "name": "SubjectObject", - "line": 20, - "comment": "Represents an object that is both an observable sequence as well as an observer. Each notification is broadcasted to all subscribed observers.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L148_C1)\n---\nimport std.array : appender;\n\nauto data = appender!(int[])();\nauto subject = new SubjectObject!int;\nauto disposable = subject.subscribe(observerObject!(int)(data));\nassert(disposable !is null);\nsubject.put(0);\nsubject.put(1);\n\nimport std.algorithm : equal;\n\nassert(equal(data.data, [0, 1]));\n\ndisposable.dispose();\nsubject.put(2);\nassert(equal(data.data, [0, 1]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L148_C1)\n", + "comment": "Represents an object that is both an observable sequence as well as an observer. Each notification is broadcasted to all subscribed observers.\nExample:\n$(DDOX_UNITTEST_HEADER __unittest_L148_C1)\n---\nimport std.array : appender;\n\nauto data = appender!(int[])();\nauto subject = new SubjectObject!int;\nauto disposable = subject.subscribe(observerObject!(int)(data));\nassert(disposable !is null);\nsubject.put(0);\nsubject.put(1);\n\nimport std.algorithm : equal;\n\nassert(equal(data.data, [0, 1]));\n\ndisposable.dispose();\nsubject.put(2);\nassert(equal(data.data, [0, 1]));\n\n---\n$(DDOX_UNITTEST_FOOTER __unittest_L148_C1)\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 295, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "AsyncSubject", - "line": 295, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "subscribe", - "line": 299, - "comment": "\n", - "type": "Disposable(Observer!E observer)", "parameters": [ { - "name": "observer", - "type": "Observer!E" + "type": "Observer!E", + "name": "observer" } ], - "endline": 333, + "line": 299, + "kind": "function", "char": 16, - "kind": "function" + "name": "subscribe", + "type": "Disposable(Observer!E observer)", + "endchar": 5, + "endline": 333, + "comment": "\n" }, { + "parameters": [ + { + "kind": "type", + "name": "T" + } + ], + "line": 336, + "kind": "template", + "char": 10, "members": [ { - "endchar": 5, - "name": "subscribe", - "line": 336, - "type": "(T observer)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observer", - "type": "T" + "type": "T", + "name": "observer" } ], - "endline": 339, - "char": 10, + "line": 336, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 10, + "name": "subscribe", + "type": "(T observer)", + "endchar": 5, + "endline": 339 } ], "name": "subscribe", - "line": 336, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "T", - "kind": "type" + "type": "Observer!E", + "name": "observer" } ], + "line": 342, + "kind": "function", "char": 10, - "kind": "template" - }, - { - "endchar": 5, "name": "unsubscribe", - "line": 342, - "comment": "\n", "type": "void(Observer!E observer)", - "parameters": [ - { - "name": "observer", - "type": "Observer!E" - } - ], + "endchar": 5, "endline": 357, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "put", - "line": 361, - "comment": "\n", - "type": "void(E value)", "parameters": [ { - "name": "value", - "type": "E" + "type": "E", + "name": "value" } ], - "endline": 371, + "line": 361, + "kind": "function", "char": 10, - "kind": "function" + "name": "put", + "type": "void(E value)", + "endchar": 5, + "endline": 371, + "comment": "\n" }, { - "endchar": 5, - "name": "completed", "line": 374, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "completed", "type": "void()", + "endchar": 5, "endline": 411, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "failure", - "line": 414, - "comment": "\n", - "type": "void(Exception e)", "parameters": [ { - "name": "e", - "type": "Exception" + "type": "Exception", + "name": "e" } ], - "endline": 437, + "line": 414, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception e)", + "endchar": 5, + "endline": 437, + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 295, + "name": "AsyncSubject" } ], "name": "AsyncSubject", - "line": 295, - "comment": "\n", + "comment": "\n" + }, + { "parameters": [ { - "name": "E", - "kind": "type" + "kind": "type", + "name": "E" } ], + "line": 678, + "kind": "template", "char": 1, - "kind": "template" - }, - { "members": [ { - "name": "BehaviorSubject", - "line": 678, + "kind": "class", + "char": 1, "members": [ { - "endchar": 5, - "name": "this", "line": 682, - "comment": "\n", + "kind": "constructor", + "char": 5, + "name": "this", "type": "()", + "endchar": 5, "endline": 685, - "char": 5, - "kind": "constructor" + "comment": "\n" }, { - "endchar": 5, - "name": "this", - "line": 688, - "comment": "\n", - "type": "(E value)", "parameters": [ { - "name": "value", - "type": "E" + "type": "E", + "name": "value" } ], - "endline": 692, + "line": 688, + "kind": "constructor", "char": 5, - "kind": "constructor" + "name": "this", + "type": "(E value)", + "endchar": 5, + "endline": 692, + "comment": "\n" }, { - "endchar": 5, - "name": "value", "line": 696, - "comment": "\n", + "kind": "function", + "char": 14, + "name": "value", "type": "inout @property inout(E)()", + "endchar": 5, "endline": 699, - "char": 14, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "value", - "line": 702, - "comment": "\n", - "type": "@property void(E value)", "parameters": [ { - "name": "value", - "type": "E" + "type": "E", + "name": "value" } ], - "endline": 709, + "line": 702, + "kind": "function", "char": 10, - "kind": "function" + "name": "value", + "type": "@property void(E value)", + "endchar": 5, + "endline": 709, + "comment": "\n" }, { + "parameters": [ + { + "kind": "type", + "name": "TObserver" + } + ], + "line": 713, + "kind": "template", + "char": 10, "members": [ { - "endchar": 5, - "name": "subscribe", - "line": 713, - "type": "(auto ref TObserver observer)", + "storageClass": [ + "auto" + ], "parameters": [ { - "name": "observer", "type": "TObserver", "storageClass": [ "auto", "ref" - ] + ], + "name": "observer" } ], - "endline": 717, - "char": 10, + "line": 713, "kind": "function", - "storageClass": [ - "auto" - ] + "char": 10, + "name": "subscribe", + "type": "(auto ref TObserver observer)", + "endchar": 5, + "endline": 717 } ], "name": "subscribe", - "line": 713, - "comment": "\n", - "parameters": [ - { - "name": "TObserver", - "kind": "type" - } - ], - "char": 10, - "kind": "template" + "comment": "\n" }, { - "endchar": 5, - "name": "subscribe", - "line": 720, - "comment": "\n", - "type": "Disposable(Observer!E observer)", "parameters": [ { - "name": "observer", - "type": "Observer!E" + "type": "Observer!E", + "name": "observer" } ], - "endline": 724, + "line": 720, + "kind": "function", "char": 16, - "kind": "function" + "name": "subscribe", + "type": "Disposable(Observer!E observer)", + "endchar": 5, + "endline": 724, + "comment": "\n" }, { - "endchar": 5, - "name": "put", - "line": 727, - "comment": "\n", - "type": "void(E obj)", "parameters": [ { - "name": "obj", - "type": "E" + "type": "E", + "name": "obj" } ], - "endline": 730, + "line": 727, + "kind": "function", "char": 10, - "kind": "function" + "name": "put", + "type": "void(E obj)", + "endchar": 5, + "endline": 730, + "comment": "\n" }, { - "endchar": 5, - "name": "completed", "line": 733, - "comment": "\n", + "kind": "function", + "char": 10, + "name": "completed", "type": "void()", + "endchar": 5, "endline": 736, - "char": 10, - "kind": "function" + "comment": "\n" }, { - "endchar": 5, - "name": "failure", - "line": 739, - "comment": "\n", - "type": "void(Exception e)", "parameters": [ { - "name": "e", - "type": "Exception" + "type": "Exception", + "name": "e" } ], - "endline": 742, + "line": 739, + "kind": "function", "char": 10, - "kind": "function" + "name": "failure", + "type": "void(Exception e)", + "endchar": 5, + "endline": 742, + "comment": "\n" } ], - "char": 1, - "kind": "class" + "line": 678, + "name": "BehaviorSubject" } ], "name": "BehaviorSubject", - "line": 678, - "comment": "\n", - "parameters": [ - { - "name": "E", - "kind": "type" - } - ], - "char": 1, - "kind": "template" + "comment": "\n" } ], "comment": " This module defines the Subject and some implements.\n", - "kind": "module" + "name": "rx.subject" + }, + { + "kind": "module", + "file": "source\\rx\\util.d", + "members": [], + "comment": " This module is a utility for some implements at internals.\n", + "name": "rx.util" } ] \ No newline at end of file diff --git a/docs/file_hashes.json b/docs/file_hashes.json index e7c1cfc..efd87aa 100644 --- a/docs/file_hashes.json +++ b/docs/file_hashes.json @@ -1 +1 @@ -{"rx\\algorithm\\any.html":"4121EED65AFE47585F9CC5403C698D08","rx\\disposable\\SerialDisposable.disposable.html":"D01867C68B3E79B2F3DB3D9ACC681D71","rx\\observer\\hasCompleted.html":"2093CDEA257876E8540BD6C50C354732","rx\\observer\\Observer.failure.html":"74F57D369DCB90CA5DD8545F0B202930","rx\\disposable\\Disposable.dispose.html":"24A7111850E0C2E7DFBA23AF8250E142","rx\\disposable\\RefCountDisposable.html":"F8C5C094657DB524E0E5E2EC33750E6D","rx\\algorithm\\all\\all.html":"610D39B63C993163588907F958CEF682","rx\\disposable.html":"127335B580682D418DED3EC57D222A2F","rx\\disposable\\AnonymousDisposable.this.html":"826887294BCD102D3AEA447D02E1635B","rx\\observer\\NopObserver.instance.html":"9AAC7CEEAE4BCB5501153527CE6EB333","rx\\disposable\\NopDisposable.instance.html":"5E46171E0087C3635C0C53694F6794E5","rx\\observable\\never.html":"56FC9C548DB580D503E1AD640AB919C8","rx\\subject\\SubjectObject.subscribe.html":"6365F8B0CF0510686C999297635929A3","rx\\subject\\SubjectObject.html":"10DE2BD670AB07CCC82D91669E2357CA","rx\\algorithm\\combineLatest\\combineLatest.combineLatest.html":"743D21B02A846D077ACE752312EE3AEA","rx\\observer\\observerObject.html":"9F7F71878FA434469564B9D85F17D8B4","rx\\disposable\\CancelableObject.isDisposed.html":"69DA736A7EFB70F51107420591D8CC56","rx\\algorithm\\groupby\\groupBy.groupBy.html":"E25645A3C0C2D1781728998F206540FE","rx\\observer\\DoneObserver.html":"8E5FD5D2ABDFC0FE023D7A5B491F8148","rx\\observer\\makeObserver.html":"0F65FCA8757B17CBA6DE375B702B0227","rx\\observable\\observableObject.html":"0301C60B5FF6C664299CD714EBE2DDC7","rx\\disposable\\SingleAssignmentDisposable.dispose.html":"FDA5E47C60D6D9465797242A6EA147A2","rx\\observer\\CompositeObserver.add.html":"4E3480ADE84E9E137F9221AB278C79E2","rx\\disposable\\SerialDisposable.html":"7ABD130CD1D73723840514542AC76B85","rx\\subject\\BehaviorSubject.this.html":"05B923CE206F896079F8992F5F377488","rx\\disposable\\CancellationToken.html":"2C312BD1D1A18A83782D805783269CD6","rx\\observable\\Observable.html":"4C96477C1A6777152C07642EAB094DCE","rx\\disposable\\CompositeDisposable.dispose.html":"0D07DF235D5F16039DBB1BFC4AB46E82","rx\\subject\\SubjectObject.failure.html":"3306C040264F7EEA84B66D78E6B5B3E4","rx\\disposable\\CancellationToken.cancel.html":"EF7E9B2C37395B591F354736BD9749B8","sitemap.xml":"287B81D1A219298114F3F7BA21FAA55A","rx\\disposable\\isDisposable.html":"3A0B671110ED05A03B602BDD46D898B5","rx\\observable\\error.html":"BC5A5ACC43950DBCEE86A1940FA7264F","rx\\algorithm\\scan\\scan.html":"5387E09D1263DF261532077806B9407A","rx\\subject\\AsyncSubject.completed.html":"00507EF83D5460393C890D048B826B4B","rx\\disposable\\isCancelable.html":"922D12FEF542A7EFB9C82DCD5456FB35","rx\\disposable\\CompositeDisposable.html":"8D497D6CC5BE3509E5F34421D45F180E","rx\\algorithm\\groupby.html":"61F184544091BE2BAEE38FFDF1DA9BB9","rx\\algorithm\\fold.html":"D44C5F932AB9CF14E54DBA40C2B65592","rx\\disposable\\CancellationToken.isCanceled.html":"62B0695D5545059999E926E513CAC8BB","rx\\disposable\\Cancelable.html":"9DD0A74F96655B8FF04AF0CBFC861EE8","rx\\disposable\\SignalDisposable.signal.html":"D90035A4CE7D2823F637D0C8832D9744","rx\\algorithm\\groupby\\GroupedObservable.html":"B82F147277079CC3948B8ACF7336CE4C","rx\\observer\\NopObserver.html":"F175348D0B1C6CDED59F8D40B73FEADA","rx\\disposable\\SerialDisposable.isDisposed.html":"81E2B8DD88538FAB7CC341115A690964","rx\\observable\\isObservable.html":"C2EAF2616F461BC0FFAFDE6050E8934A","rx\\disposable\\RefCountDisposable.getDisposable.html":"ABF0700C97E384B9DA46D3AD23F74E4B","rx\\algorithm\\any\\any.html":"DF9F2E50A6CBE3127787A511B4208407","rx\\observer\\CompositeObserver.completed.html":"0C40CDD2A39B79ECCDF66B9C4D7AA73C","rx\\disposable\\SingleAssignmentDisposable.html":"582717B21235E5A36A30483C3A17CBCC","rx\\observable\\from.html":"603CFB2999F193C33B9AF82A0C4A80D2","rx\\disposable\\Disposable.html":"D0FCDE2EA831B976CCEB15D4C83630BE","rx\\subject\\BehaviorSubject.subscribe.html":"B5921F7AF0FE8D4B992FFE7C91879B63","rx\\subject\\BehaviorSubject.failure.html":"9AF973E854BC8EBFC5B7EB66057CE2D8","rx\\algorithm\\filter\\filter.filter.html":"A38972AFF341FD2F19A6582A72267943","rx\\algorithm\\merge.html":"B7F4A671CB57AD1877AD3101F3E43272","rx\\subject\\AsyncSubject.failure.html":"2931ED15AC3231CEA6C7B68C23F2BAE2","rx\\disposable\\Cancelable.isDisposed.html":"48B179D3BF692F22E10736EBBBE9CAAC","rx\\observer\\CompositeObserver.empty.html":"610CA42B4054655ACD6190E6A825803D","rx\\observer.html":"79413AD36D187FFE8816FF911F286F79","rx\\subject\\BehaviorSubject.put.html":"21B124BD5A73C56AA4D94620F670C395","rx\\subject\\SubjectObject.put.html":"0C4B21C8032C7057A0ECA2B37C6E4D36","rx\\algorithm\\combineLatest.html":"0E0FF53242D251912CAA1DE8C1DDA86F","rx\\disposable\\RefCountDisposable.this.html":"D0B3A5C385B270943F3C3E885A46789B","rx\\disposable\\NopDisposable.html":"ACA9CBB291825376B87124F9FAF77534","rx\\observer\\ObserverObject.failure.html":"4F055C39475FB230A3ABFB9DBD27C38C","rx\\observable.html":"B09C7A5BF1D857E6F7EC3780BC7CE6D8","rx\\observable\\observableObject.observableObject.html":"49E8AF2C21943DB1B77666B0AB6073CA","rx\\disposable\\CompositeDisposable.this.html":"7AAB012D5A170A277793E90750F26E8A","rx\\algorithm\\fold\\fold.html":"BE28191049A539E1135596F33E4871B6","rx\\disposable\\SingleAssignmentDisposable.isDisposed.html":"B39A2AFCACAC389AF1C70A01610511FB","rx\\observer\\ObserverObject.html":"4EC29C2FF50DF80AC683DB866D2D7AD3","rx\\disposable\\DisposableObject.this.html":"4F111C82D75D483B5AF4EC795908A53C","rx\\algorithm\\map\\map.html":"62322FC975EB7AFCA8D58C97E2341E1C","rx\\subject\\AsyncSubject.html":"FABBF60DFFE45D37D1F35866D0DA5A35","rx\\subject\\BehaviorSubject.value.html":"6D3038A773D871452050E21F831E6CB8","rx\\subject\\Subject.html":"01D46149D2C90CCD9CB34573E789EF56","rx\\disposable\\DisposableObject.html":"F8882CAFB4CD7DC6DC4D2B01A1F95B2A","rx\\observable\\doSubscribe.html":"ED1105F8175D58172AB46AEF28E4A608","rx\\observer\\CompositeObserver.remove.html":"029402D1329801D5D1DC3883F6A645EC","rx\\observable\\empty.html":"4EADAEE60B2D83A1069728EDD1ABFCC5","rx\\algorithm\\all.html":"8ECEDB9E7D5434C7E69DD8E2D1B24CE6","rx\\algorithm\\tee\\tee.tee.html":"6DB873F5ADA63EEE383C88E20DF6BEC0","rx\\observer\\observerObject.observerObject.html":"391D3147B0F6C1CF21BA11F0FC943168","rx\\disposable\\SingleAssignmentDisposable.setDisposable.html":"AE0FBDE12B42A956DBD537926DA9D010","rx\\algorithm\\combineLatest\\combineLatest.html":"4B3A26AE9559EDBFD4CB72105903C2FC","rx\\algorithm\\groupby\\groupBy.html":"960C0285E4DC75899D01B55BEF011E73","rx\\subject\\BehaviorSubject.html":"71F76BEDB1ADE696D3C701CDA43559E6","rx\\algorithm\\buffer.html":"C6EB58261F2AFA0B6A1B08E276DFC344","rx\\subject\\AsyncSubject.unsubscribe.html":"DCDC45E4FFECAFC2CBA51037239D8BB0","rx\\observer\\CompositeObserver.put.html":"B7469028C61CFBC42A14420147870FFC","rx\\observable\\isSubscribable.html":"E971D4189A6CCF0E074F03367679F9E3","index.html":"6CB9BADEC4128CD9113DAB35BDE63420","rx\\disposable\\withDisposed.html":"65CB58E0B207DFF4AF4AA7AE059F45DB","rx\\algorithm\\map.html":"410EBCBF611B0DBCAE9FE29B9A7CC278","rx\\observable\\defer.html":"2C0A76529ECF28627ADF4541BA6927FD","rx\\algorithm\\tee.html":"6F5FF082744B5EA07F0EC28C8938CE80","rx\\observer\\Observer.completed.html":"1F5778AE498F0269E29943D17D6BD86D","rx\\observer\\hasFailure.html":"1085EB22A22B0891087E8777BFE818F0","rx\\algorithm\\all\\all.all.html":"43B1B801C83C48947D88836232EF7B58","rx\\algorithm\\tee\\tee.html":"42246D3D9FB646F223F66B7D8D6488F8","rx\\observer\\ObserverObject.completed.html":"1BEEF718977D8444894183A392983AC8","rx\\disposable\\AnonymousDisposable.dispose.html":"0E4D870CFA96458ED2B72635BD905909","rx\\observer\\Observer.html":"84DBAC6099363052F29172307B94FB3B","rx\\disposable\\SerialDisposable.dispose.html":"F91D7CCB3296371B693AAC5FB3B7B0F4","rx\\disposable\\AnonymousDisposable.html":"A6C1B72A41AEC25C9D152DA5B8B4D522","rx\\algorithm\\buffer\\buffered.html":"F29FD59F8A7F1216223BB4AADC034EC9","rx\\subject\\BehaviorSubject.completed.html":"B4F50A7B573BD55D7CCDA172B18C28D8","rx\\subject\\AsyncSubject.put.html":"DA5289241DCD6012585B30EB9F952C18","rx\\disposable\\RefCountDisposable.dispose.html":"A456CC23101F428D4C78475BB2DE6749","rx\\observer\\CompositeObserver.failure.html":"7F354B0A1575C01C63A992D9621615F1","rx\\subject\\SubjectObject.unsubscribe.html":"0A981CBC1912BF00FE38D687451A5CA9","rx\\subject\\SubjectObject.completed.html":"3FDECFFC5ADF50732E6A0FBB8606E8BB","rx\\algorithm\\map\\map.map.html":"5406EDE2C541174CB5047582EB7DA277","rx\\algorithm\\filter.html":"D6C31226A656AEFA1A841A1A8B7C8458","rx\\disposable\\CancellationToken.isDisposed.html":"A330B6E7F47EE2312F383B168A1B77CE","rx\\disposable\\withDisposed.withDisposed.html":"169534963C49CC376D5425EC19A1F502","rx\\observable\\asObservable.html":"32C1D4AC20ACD16C39AF22B98A5FEFB7","rx\\algorithm\\scan.html":"0F8D2821DE71A32CB29EA31404E6265D","rx\\observer\\CompositeObserver.html":"FA75D1617718FDA83593853199BED58E","rx\\disposable\\CancellationToken.dispose.html":"FF181D0B70E28A4702CEDB0E592F6D3D","rx\\algorithm\\any\\any.any.html":"5445E12C1453340F846C1FE908649F92","rx\\observable\\ObservableObject.html":"88A2912A970899D7B546E3082DD18F60","rx\\disposable\\DisposableObject.dispose.html":"5D4F65B434852FDF5F47604D3D9AB03D","rx\\subject\\SubjectObject.this.html":"306F3E17945B813FF85C5A55F3C944A8","rx\\disposable\\SignalDisposable.html":"7E356EFD18230FD0E8524F0BE88F1D79","rx\\subject.html":"A994B828B12BBFBCE3364C245F15879F","rx\\algorithm\\filter\\filter.html":"62B00D2DA9A265DAC04BEEFFA61A01BF","rx\\algorithm\\scan\\scan.scan.html":"059A887F5DF4FE01DF7F9972A9724482","rx\\range.html":"04D2C016EE66E70E4FB7D98ACF6B8F84","rx\\disposable\\disposableObject.html":"946DA8996077890B9D0043E8A2B5FA19","rx\\disposable\\SignalDisposable.dispose.html":"CB879A3EAAEF588DE80AA58B19B4DAA8","rx\\disposable\\CancelableObject.this.html":"2C115D4F973F41448FA913E070200A99","rx\\subject\\AsyncSubject.subscribe.html":"3F61947A5074D43ABCD21E0B8D0C6172","rx\\observer\\isObserver.html":"5531119F2B0464A929A37ACE7EA26A29","rx\\disposable\\CancelableObject.html":"84589F30CB3D7D82BB316A35AD20127D","symbols.js":"79F62FAB4FB120A806C8E5DD41F9E5D6","rx\\algorithm\\merge\\merge.html":"F8AD69F9223A118F8DF8EF5EF65414B9"} \ No newline at end of file +{"rx\\disposable\\disposableObject.html":"5527C14DCF9DE4F94A2F1573F3E8292A","rx\\observable.html":"C246177E438AD91B552BEC0E3145A773","rx\\range\\takeLast\\takeLast.html":"EFA8CEF9BCF1DC243DBB19966A69D588","rx\\subject\\BehaviorSubject.completed.html":"22DEBE881DC0584883645EBB06ACEB99","rx\\disposable\\CancellationToken.isCanceled.html":"B9D2FF79424FFA37CE7215229762CF9D","rx\\range\\drop.html":"C395346CDC765554A1E281050F2E70E0","rx\\subject\\AsyncSubject.put.html":"F88FB65D397E9478B5FB7BD543BC029A","rx\\subject\\SubjectObject.unsubscribe.html":"B1C9156DBA32C150ABFCE972D21EE588","rx\\observable\\defer.html":"EE8CFBE1EB7C176111FEB3440EA20B27","rx\\disposable\\SingleAssignmentDisposable.html":"B304371E41EF3DD2A29E5F08CA356DD9","rx\\util\\AtomicCounter.html":"2C0B4CC570CB8C333E5977428818B2FC","rx\\observer\\ObserverObject.completed.html":"F23B7F74D7647B42572219B63C2FD678","rx\\subject\\BehaviorSubject.subscribe.html":"53FB2DE9D78CC7B47C85F1DA17206DAC","rx\\disposable\\Cancelable.isDisposed.html":"7E744823D2715BBB655D73B0EA02D4BD","rx\\observable\\observableObject.observableObject.html":"3C1847229ABD97340FCB773071C83CEA","rx\\disposable\\DisposableObject.this.html":"7B6964EB33E36888E1D683AFDF863C1E","rx\\observable\\asObservable.html":"5BFEE9A8F7832D0C59DEADF9821F2B61","rx\\subject\\AsyncSubject.html":"2373F19433F56AD1E11814BCA0F27684","rx\\algorithm\\combineLatest\\combineLatest.combineLatest.html":"A01E02919AA637DED3558C91B70629B4","rx\\disposable\\RefCountDisposable.dispose.html":"5598795B402098533710E5DC714794B8","rx\\observer\\CompositeObserver.empty.html":"0E5B9453845F0866A3C30CE8AD1EE090","rx\\observer\\CompositeObserver.remove.html":"64A85F92D776F83D043F70C4D979C8BC","rx\\observer\\observerObject.observerObject.html":"ECE6805FB4B46FF3C7A18C0B7365CE3E","rx\\algorithm\\merge\\merge.html":"8BF75CAE89F0A2C22350B4D17530396F","rx\\algorithm\\groupby\\GroupedObservable.html":"CD72E9F52ECD07DF1A70D47F29E40BA3","rx\\subject\\SubjectObject.subscribe.html":"43AE0B237B4156F17D67721511134755","rx\\algorithm\\filter.html":"ACE6232840EA812CAA3D4AB75FCAC4E4","rx\\algorithm\\all\\all.all.html":"1EFDFC00940FF198B2425B5ECC5AA6D4","rx\\subject\\AsyncSubject.failure.html":"1DF6DD18EB7E85268FDFBEE2010BE39F","rx\\scheduler\\ThreadScheduler.html":"70085A77AB66FFA9769DEF92317199FF","rx\\disposable\\RefCountDisposable.getDisposable.html":"2B1F6B5B09C770BB86F5836E7526A0DD","rx\\observer\\CompositeObserver.add.html":"88E8B3A77415A401D5648EA14959296B","rx\\observable\\observableObject.html":"813795E72116F85926BAEAF39213FAC2","rx\\util\\AtomicCounter.tryUpdateCount.html":"56B3254DF04C6C9D5567C2CFBF8519CC","rx\\subject\\SubjectObject.this.html":"F5ED4105B6BD55AF28D7C9F12D1B25F3","rx\\observable\\never.html":"BF12A07CAA0E0C3E12805E8A45202862","rx\\disposable\\SerialDisposable.dispose.html":"5F1819F2AED54B48DB6C6BCA2EB2130E","rx\\observer\\hasFailure.html":"4B6407A38C0969680180ED46FB95102F","rx\\subject\\BehaviorSubject.value.html":"9209A01509BFE36E70B5D6B255D824BF","rx\\scheduler.html":"D59751ADA43CF22E4070A03A784266BA","rx\\observer\\CompositeObserver.completed.html":"77F3D717052700A665C816716E4D8DC4","rx\\subject\\SubjectObject.put.html":"08A43F3DDA968649F14717AE48DDCEB2","rx\\util.html":"C249902EF73D6B39386A75912C25FBBB","rx\\algorithm\\combineLatest\\combineLatest.html":"76B5C6F9A287A9194B6A8D284F50E94C","rx\\util\\EventSignal.wait.html":"777A798C3CB1F75D883648E31D86C6ED","rx\\disposable\\CancellationToken.html":"0873451673BF92BE95E7F2976ACCBF30","rx\\algorithm\\scan.html":"B21468C67BA6E2A59B8FE8B12B903399","rx\\disposable\\SignalDisposable.signal.html":"2A289C4C14302D722645BB398DE577A9","rx\\scheduler\\ObserveOnObservable.html":"0567CBBD6E525EF1DAD5CE92DA9630C0","rx\\util\\AtomicCounter.isZero.html":"E52F62188758AD54D7C7C49A642FCA09","rx\\subject\\AsyncSubject.completed.html":"E306F24A6B9B0EDEB348AEFABEFAF120","rx\\observable\\isSubscribable.html":"C2209E7C605198735C113895CA28CE1A","rx\\observer\\ObserverObject.failure.html":"9A7929634D57163477BBD6F7DD0BFA2A","rx\\algorithm\\buffer\\buffered.html":"2D7519ECEAA0E18CBC4137A661B602AB","rx\\algorithm\\map\\map.map.html":"37F2D72A5F6C0B1CCAC9FE58D987F74B","rx\\disposable\\Disposable.dispose.html":"315EDFDADCC5E9AA830446437A1F502A","rx\\scheduler\\HistoricalScheduler.html":"12EB4A4C25D0848B52DA7430BED81E7A","rx\\observer\\isObserver.html":"96CBC5138F43C779F8F4701C303E2BEF","rx\\algorithm\\filter\\filter.html":"FFEE05C8787DD7CAC15483E223FCDD4F","rx\\algorithm\\tee\\tee.tee.html":"D723D38B4C82D4A6EF2A8AFCC3E62DF8","rx\\algorithm\\tee.html":"93F953382C691CBACCE910A5A5E6810B","rx\\scheduler\\SubscribeOnObservable.html":"B0A1092A53015AA545B93CE355FD1C9D","rx\\disposable\\Disposable.html":"5EFE4A25E3B2562CED6A02B07030C5F9","rx\\util\\EventSignal.signal.html":"DFA8CB593E0BAC046C0AB83296BF6D29","rx\\algorithm\\merge.html":"5996E0E23D6E8982F1AF9D370A9A57B9","rx\\algorithm\\uniq\\uniq.html":"C1FAEB26FF8470C1AEE39EC270086E0C","rx\\util\\AtomicCounter.tryDecrement.html":"6778E5BC6D011CF9064AEA0246426BAB","rx\\algorithm\\filter\\filter.filter.html":"85B63D14DC7F89AEB5DA27783CC9F013","rx\\observer\\ObserverObject.html":"02212D982D7DAD1838B1F917ADE3D82C","rx\\algorithm\\scan\\scan.html":"91A40A3A8D391586B06C48AB37E45E31","rx\\disposable\\SerialDisposable.html":"3DAF59F1C82C89F694FE78AB0CA8EBF3","rx\\disposable\\RefCountDisposable.this.html":"FEE35F6662FC53388C709AD8DF60606B","rx\\subject\\BehaviorSubject.failure.html":"78A0FC7FAC2E509D451FCCCF7D8D39AC","rx\\disposable\\SingleAssignmentDisposable.isDisposed.html":"EEB4682180A538080AE05D2DEDB60186","rx\\util\\exchange.html":"3892A18655DE9C3B4E9ACC8BC0C1F542","rx\\disposable\\isCancelable.html":"B37B10973712F2063A5F028EFDC006BE","rx\\disposable\\NopDisposable.instance.html":"3D3B6CD0D696DE8E6947D9ABAC4785A9","rx\\observable\\ObservableObject.html":"207479ECBA50D61F580DC019B016BDFB","rx\\subject\\AsyncSubject.unsubscribe.html":"5023F073190A033D1A3D3D081034240A","rx\\disposable\\NopDisposable.html":"080901E434852E2443006A92FFCE34C1","sitemap.xml":"35B76F32424868D8D792BCA6F96FA35E","index.html":"EBF96CC8F91290853C7BE64DE35D1CC6","rx\\observer\\Observer.completed.html":"91948606C6B6A14A3E71B500BC35C7BC","rx\\observable\\empty.html":"5B3963CD5E4B9F588EF196373E9A7205","rx\\observer\\observerObject.html":"7C12837E9A09DC927B887314F2E7E748","rx\\observer\\makeObserver.html":"0E65540DFE6C0B434CA52757968CC484","rx\\algorithm\\all.html":"A0CA46FEBD7987A2401BB62148379FC4","rx\\disposable\\CompositeDisposable.html":"518167C695A7269AD7F4542DEC8106A2","rx\\disposable\\SerialDisposable.disposable.html":"A5E0218729B85FDD93BE7C1E80DE30C6","rx\\disposable\\SignalDisposable.html":"7CEB3A0C2B3B67FB8E011BA3BFE6847F","rx\\observer\\Observer.failure.html":"8F7ECC1311C0AA78F7BF3F4452DF7116","rx\\range\\takeLast.html":"FF8D296071C6552F50369B37035C2B05","rx\\disposable\\SignalDisposable.dispose.html":"90ECCCC4BCFD1E3637826745A94D5458","rx\\disposable\\CompositeDisposable.dispose.html":"C22C44650283399AC9D8CD8DB9B8065C","rx\\algorithm\\fold\\fold.html":"132B2E7D3775D5101CAA5CBBCC802E8F","rx\\util\\Ticket.html":"551D425B10864477FDCEB80960F9F125","rx\\algorithm\\tee\\tee.html":"352D34B0277B3FB860E51DB41A930C12","rx\\disposable\\isDisposable.html":"A9D27DDA5B0217D0B884B25E8F4C1713","rx\\algorithm\\all\\all.html":"C43A4B4731958373E1608BBCA60A2CC5","rx\\observer\\CompositeObserver.html":"9565E20C713192A3B0C385F1221098B1","rx\\disposable\\AnonymousDisposable.html":"7D3BF96C6025E10E2F29BB2A5705EC18","rx\\algorithm\\buffer.html":"B19E3057EF55045CC84D29FF6339EBF5","rx\\algorithm\\uniq.html":"C36F2B29C81E26F34D14A1CED3FC39EA","rx\\subject\\SubjectObject.html":"DD5308079062BF2657113E933370D760","rx\\algorithm\\combineLatest.html":"E055F2EA03E5B561BBF99EA1029EACAD","rx\\disposable\\DisposableObject.dispose.html":"890305EF9AF372A2ABC87F0B98378427","rx\\disposable\\CancellationToken.cancel.html":"B052BDD9E13C27575F7E4638E2631E62","rx\\util\\TicketBase.isStamped.html":"C5CCC28A3315106C6917FA87044615F4","rx\\disposable\\SerialDisposable.isDisposed.html":"70996027F20929495F373D2599C79FA1","rx\\scheduler\\TaskPoolScheduler.html":"CA2AB58583A40D4B464AFECC60FAE6E0","rx\\algorithm\\groupby\\groupBy.html":"5850363EC9F0C9615904BB092F75C0B4","rx\\observer\\Observer.html":"B7B983ABB8F9B43883344BDA2795FDD6","rx\\algorithm\\any\\any.any.html":"6F552941A448A2801E2780AB8CF8BCE3","rx\\disposable\\CompositeDisposable.this.html":"A34D7FBBA594917AEF56432AC807720C","rx\\algorithm\\debounce\\debounce.html":"790E929C8FA7FC78E40ACFED91ACB878","rx\\range\\drop\\drop.html":"7B95D1BAF898166BA6B0A50F502F3D53","rx\\scheduler\\currentScheduler.html":"DE728BF6CF62A55B48D6750D967E9801","rx\\disposable\\CancelableObject.isDisposed.html":"A8E06E70DCB36D725408CC691176DE2A","rx\\disposable\\SingleAssignmentDisposable.dispose.html":"6812BF3599299B5DB17D249B91BAC536","rx\\observer.html":"5B72F74999B3CD0EE8A482720EDC13E1","rx\\util\\EventSignal.setSignal.html":"FCBD8ACC44C5BB3CDD45080F64CE8698","rx\\util\\assumeThreadLocal.html":"2A1FEF0B577032C5EB5D95B546B93AAC","rx\\scheduler\\LocalScheduler.html":"E9BBD7EFE98E58C8C27B7AF8421F6592","rx\\disposable\\Cancelable.html":"45BDD7A0925C42A92152E9BCD442ADC6","rx\\subject\\SubjectObject.failure.html":"188F754B8B6D17E6FACD3827A2343740","rx\\algorithm\\map\\map.html":"69EC6E21C219E9AC4F2333A268B6A30D","rx\\disposable\\AnonymousDisposable.this.html":"01E294807BCC8B5561564FF2673FBBB0","rx\\util\\AtomicCounter.trySetZero.html":"BAA40805A570DC2F5AC253A4B42ABD94","rx\\algorithm\\scan\\scan.scan.html":"D3EBFFD5CA5E32785B9BBA3882E8E55C","rx\\subject\\AsyncSubject.subscribe.html":"0193D6FF21D03312A5670E6E9D0C500C","rx\\scheduler\\Scheduler.html":"9084A4E15128F03AB6DAF0E8E827FC32","rx\\observable\\doSubscribe.html":"320EBB49A4F39CD0A8F84159EAA61AE0","rx\\algorithm\\groupby\\groupBy.groupBy.html":"F26D2C5975733724EBF296E029A3C137","rx\\disposable\\AnonymousDisposable.dispose.html":"59330761F0FB6A28052B5CD967F1129E","rx\\disposable\\CancelableObject.html":"740D97A6341E223A9A8FA57B5CE5C28D","rx\\disposable.html":"74146588EF91014A1EF075B12EE23680","rx\\algorithm\\uniq\\uniq.uniq.html":"7765716401F3C31108FC6E06E8C65F82","rx\\subject\\BehaviorSubject.this.html":"93035019620CB97DD4D9B27E165F859E","rx\\disposable\\withDisposed.withDisposed.html":"ADBFF43269E7580FE2AA43E0562D09D3","rx\\observer\\NopObserver.instance.html":"0762206ABF1B5EA29A070F98814EFE2D","rx\\scheduler\\observeOn.html":"44447FA18244CCA751C557A04AE62F50","rx\\algorithm\\debounce.html":"E8CED0A2C6D391A03A6C20481A94630C","rx\\observable\\isObservable.html":"BCC5DF25D3C4F373ED1C926CDF432A8F","rx\\util\\AtomicCounter.this.html":"0C216BE34E4DF72207830EACC608A7E0","rx\\observer\\hasCompleted.html":"6DD436ED3E398059E39775DD73848368","rx\\observer\\CompositeObserver.put.html":"7984A45C5A4273D3BBD823169D4F4B1C","rx\\observer\\NopObserver.html":"B18FDD103D37EA3EE4BF8C648C32EC04","rx\\range\\take\\take.html":"B57C11B1F32AAF9423CB8369A2E8BA07","rx\\util\\EventSignal.this.html":"CCA7C83606254B2F6AAB1DB98C4C584B","rx\\subject\\BehaviorSubject.put.html":"4705BFA9508A56B60B062B6350771C28","rx\\disposable\\DisposableObject.html":"437198AE02D6E40E0AC1FD4ACA6A3317","rx\\algorithm\\any.html":"A912EFB6EA81449CC0E48447B83BFE2E","rx\\algorithm\\any\\any.html":"A7761DE0B377C64AE57411D4498E843E","rx\\algorithm\\fold.html":"9CBE2CE198860CDEDA817BC082253D2C","rx\\observable\\Observable.html":"C50D5C8EB6153C88AB2004D40A213AFA","rx\\algorithm\\map.html":"7A442AAE5E27F189B01D82579ADF7D7B","rx\\subject\\BehaviorSubject.html":"B577250FD9D6EE7EC0347C021E9101C2","rx\\algorithm\\groupby.html":"AFF79737B9A12BDCF1EF00D6FDBDD6C4","rx\\disposable\\withDisposed.html":"3BCEDFB14E68BEA94095F0A968D3C91F","rx\\util\\TicketBase.stamp.html":"0ED92FF7C986CA6B5399CC93E22584AA","rx\\scheduler\\AsyncScheduler.html":"09BE7032F95B4975EABEC61E7052D0CB","rx\\subject.html":"F0705418964818E4BA7B83B41AF2F5BC","rx\\scheduler\\ObserveOnObserver.html":"F2412ED8DDFE5BC9CA6E3B43A542BC56","rx\\scheduler\\subscribeOn.html":"2D4B5BAE01CCA674BC6705D6E8E07322","symbols.js":"013BB395910C979317631471E1183B4C","rx\\subject\\SubjectObject.completed.html":"8CCE56CBA86FFCF8CB6441C1EFE6246C","rx\\disposable\\SingleAssignmentDisposable.setDisposable.html":"6C33B105487EE8EB227C69863A0726ED","rx\\observer\\CompositeObserver.failure.html":"2AEC137F9B0BC495CD0DB870F3021E3E","rx\\algorithm\\uniq\\distinctUntilChanged.html":"33EE8BC4D6D83CFCE7985A270FE4A748","rx\\observer\\DoneObserver.html":"8899B35BAFBF899332DAD950573C33A8","rx\\util\\TicketBase.html":"98E8985C908AEAB9A329AC911263F7EC","rx\\range\\take.html":"74603C25EA3F68D93EB64B589B6699EC","rx\\disposable\\CancellationToken.isDisposed.html":"20D15B64AA6E44A483B12244AE52BFB7","rx\\disposable\\RefCountDisposable.html":"B95203C0CBF66844901E81F7F2079223","rx\\disposable\\CancellationToken.dispose.html":"8C0C4A0AEE3D1E0608A4F0B42C26F4C8","rx\\disposable\\CancelableObject.this.html":"08CCD387477AD71BE5FDAE387BA332FF","rx\\util\\EventSignal.html":"4ED6ADEFF9E743841D6400070846BCE1","rx\\observable\\error.html":"7F0E315C7340FC8A479B373167B865CE","rx\\scheduler\\historicalScheduler.html":"3CCAE129C813559F148091F011F69E85","rx\\subject\\Subject.html":"234917353856B7C5F6967D62C8F05CBF","rx\\observable\\from.html":"74B4CAC68E071B36E85A29602EA6B08B"} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 119e20a..4cee486 100644 --- a/docs/index.html +++ b/docs/index.html @@ -48,6 +48,11 @@ combineLatest +
  • +
    + debounce +
    +
  • filter @@ -83,6 +88,32 @@ tee
  • +
  • +
    + uniq +
    +
  • + + +
  • @@ -102,7 +133,7 @@
  • @@ -110,6 +141,11 @@ subject
  • +
  • +
    + util +
    +
  • @@ -157,6 +193,15 @@

    API documentation

    + + + rx.algorithm.debounce + + + This module defines algorithm 'debounce' + + + rx.algorithm.filter @@ -220,6 +265,45 @@

    API documentation

    + + + rx.algorithm.uniq + + + This module defines algorithm 'uniq' + + + + + + rx.range.drop + + + This module is a submodule of rx.range. + It provides basic operation a 'drop' + + + + + + rx.range.take + + + This module is a submodule of rx.range. + It provides basic operation a 'take' + + + + + + rx.range.takeLast + + + This module is a submodule of rx.range. + It provides basic operation a 'takeLast' + + + rx.disposable @@ -249,10 +333,10 @@

    API documentation

    - rx.range + rx.scheduler - This module defines some operations like range. + This module defines the concept of Scheduler. @@ -265,6 +349,15 @@

    API documentation

    + + + rx.util + + + This module is a utility for some implements at internals. + + +