Releases: makingthematrix/signals3
Releases · makingthematrix/signals3
1.1.1
1.1.0
This release contains breaking changes from 1.0.0 which was a direct rewrite of https://github.com/wireapp/wire-signals . I thought this should be the last time when I can make such breaking changes to existing code without consequences, so I went all the way. In 1.2.0 and later the API of existing code should not be changed much anymore.
Better support for boolean signals and event streams
- #4
- Creation by comparison of signals values.
- Logical NOT for both event streams and signals.
- Methods and operators for logical AND, OR, XOR, NOR, and NAND.
- Previous multi-arguments AND and OR methods in signals now get their slightly optimized two-arguments versions.
Generators: GeneratorStream and GeneratorSignal
- #5
- methods:
generate
,repeat
andheartbeat
forGeneratorStream
,unfold
forGeneratorSignal
- Ability to stop the generator.
- Ability to pause the generator (only for the original one, not the transformed).
- The interval between two generated events/updates can be variable.
The Closeable
trait, transformers for generators
- #10
- The ability to close a stream/signal was extracted to
Closeable
which inheritsjava.lang.Closeable
. Transformers
- an object with methods to create more complex generators.onClose
functionality moved to theCloseable
trait (before only inCloseableFuture
, now also inCloseable
streams and signals).- Closing an original
Closeable
should close the transformed one as well.
CloseableFuture.repeat
is now more precise.
Refactorings
EventStream
becomesStream
.- CancellableFuture becomes
CloseableFuture
. - trait
NoAutowiring
moved fromSignal
toEventSource
. - Reorganization of private subclasses of
Signal
andEventStream
(many of them stop being final). - On the other hand, some other methods and classes become final and/or private.
CloseableFuture
inherintsCloseable
.Stream
andSignal
from
methods forCloaseableFuture
moved toTransformers
.- A missing method added,
Stream.flatten
.
And, as always, lots of unit tests and extensive docs.
[info] Passed: Total 199, Failed 0, Errors 0, Passed 199
[info]
[info] ------- Jacoco Coverage Report -------
[info]
[info] Lines: 77.2% (>= required 0.0%) covered, 163 of 715 missed, OK
[info] Instructions: 66.04% (>= required 0.0%) covered, 2307 of 6793 missed, OK
[info] Branches: 48.77% (>= required 0.0%) covered, 249 of 486 missed, OK
[info] Methods: 57.73% (>= required 0.0%) covered, 276 of 653 missed, OK
[info] Complexity: 48.77% (>= required 0.0%) covered, 459 of 896 missed, OK
[info] Class: 78.57% (>= required 0.0%) covered, 24 of 112 missed, OK
[info]
[success] Total time: 54 s, completed Mar 31, 2023, 4:54:06 PM
makingthematrix@athena:~/workspace/signals3$ cloc src/main/
24 text files.
24 unique files.
0 files ignored.
github.com/AlDanial/cloc v 1.82 T=0.01 s (2596.3 files/s, 438664.6 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Scala 24 452 2321 1282
-------------------------------------------------------------------------------
SUM: 24 452 2321 1282
-------------------------------------------------------------------------------
makingthematrix@athena:~/workspace/signals3$ cloc src/test
20 text files.
20 unique files.
0 files ignored.
github.com/AlDanial/cloc v 1.82 T=0.01 s (2335.1 files/s, 465268.4 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Scala 20 957 24 3004
-------------------------------------------------------------------------------
SUM: 20 957 24 3004
-------------------------------------------------------------------------------
1.0.0
This is Wire Signals 1.0.0 rewritten in Scala 3.
Main features
- Event streams
- Signals - event streams with internal values
- Abstractions for easy data transfer between execution contexts
- An implementation of (sometimes) cancellable futures
- Methods to work with event streams and signals in a way similar to standard Scala collections