Thank you for your interest! Issue and pull request are welcome!
We are weolcoming tha refactoring and implements operators.
rx
provides attractive code to users, like the general std.range
and std.algorithm
. But, its source code is unfortunately complicated.
In particular, it is important a variety operators combination tests, and multithreading tests.
- Linux, Mac OS X, or Windows
- git (used for source version control).
- Some D Compiler. dmd and ldc.
- Latest dub (used for build and testing).
- An IDE. We recommend Visual Studio Code with code-d.
- Use dfmt (with default settings) for code formatting.
Taking map
as an example, the operator consists of the following three elements.
- struct
MapObserver
- struct
MapObservable
- template function
map
Observer's role is to provide concrete algorithms in the constructed pipeline.
MapObserver
has the function of passing processed values to Observer as source.
Observable as an operator has Observable as a source and has the role of processing a given Observer and constructing a pipeline.
MapObservable
has the function of wrapping the passed Observer in MapObserver
and subscribing to Observable as source.
Also, since Observable returns Disposable
, it relays it.
It is utility function for build MapObservable
.
Unified naming conventions is important. It is now as follows.
- Look for similar operators from
std.algorithm
. - If there are no similar operators, follow Reactive X.
We are welcoming the tutorial documentation.
For users, the goal is to think about the composition of the tutorial so that you can see how to use it, and to add practical examples.
For developers, We think that the following things are necessary.
- Manage the tutorial as part of the source.
- Since the contribution log remains, it is easy to understand later.
- Not separate it into another repository to avoid version inconsistency.
- Keep docs as a simple API reference.