Sergej Jaskiewicz
9219c8841c
Allow enumerating fields of value types
2019-11-29 21:08:51 +03:00
Sergej Jaskiewicz
5a41e2976c
Useheaders from Swift repo for runtime introspection
2019-11-29 19:05:13 +03:00
Sergej Jaskiewicz
9b81672df8
Add dedicated tests for enumerateFields
2019-11-29 15:41:58 +03:00
Sergej Jaskiewicz
d5944290e6
Make ObservableObject.objectWillChange available in Swift 5.0
2019-11-26 17:56:01 +03:00
Sergej Jaskiewicz
1e6a7cd3b6
[WIP] Support generic ObservableObjects
2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz
26d6dc9971
[COpenCombineHelpers] Support C++ 14
...
The CI complains about missing headers, so let's reimplement std::string_view ourselves.
2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz
280ea0ac9a
Fix ObservableObject behavior for subclasses of resilient classes
2019-11-26 17:49:17 +03:00
Sergej Jaskiewicz
8798739caa
[WIP] [ObservableObject] Make some tests pass
2019-11-26 17:49:07 +03:00
Sergej Jaskiewicz
c6c79144c5
Implement ObservableObject protocol
2019-11-26 17:48:50 +03:00
Sergej Jaskiewicz
7c5a76cf2b
Fix @Published ( #112 )
2019-11-26 17:46:01 +03:00
Max Desiatov
981ab4fa09
Add Future publisher with tests ( #107 )
2019-11-26 02:15:43 +03:00
Sergej Jaskiewicz
8cf71e0122
If Multicast receives subscription twice, cancel the second one ( #110 )
2019-11-25 16:52:55 +03:00
Max Desiatov
130125cb66
Use demand.assertNonZero() in PassthroughSubject ( #108 )
2019-11-24 21:44:14 +03:00
Max Desiatov
56202b1663
Fix typo in FilterProducer.swift
...
> subsription
2019-11-22 20:12:34 +03:00
Sergej Jaskiewicz
b6c7560f4c
Use pthread_mutex_t instead of std::mutex on non-Darwin platforms
...
std::mutex doesn't guarantee error checks.
With pthread, we can enable them manually.
Error checks are essential, since the client code may bay be crafted
in such a way that causes a non-recursive lock to be recursively
acuired, which is undefined behavior with std::mutex.
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
26f9acd75a
Reimplement FlatMap to make all the tests pass
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
8afe945325
Test that CombineIdentifier uses UInt64 under the hood
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
e402fb3980
Remove redundant Self
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
4f96378c02
Remove OperatorSubscription class
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
243f3d200e
Implement PrefixWhile, TryPrefixWhile using FilterProducer
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
f1fb5552b5
Implement RemoveDuplicates, TryRemoveDuplicates using FilterProducer
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
bfd875ccba
Simplify CompactMap and TryCompactMap using FilterProducer
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
27da28f378
Simplify Filter and TryFilter using FilterProducer
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
cba3a69e74
Implement FilterProducer
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
b5e31a43ef
Fix ReplaceError subscription behavior
2019-11-19 18:38:01 +03:00
Sergej Jaskiewicz
d4bdd83a00
Implement the Record publisher
2019-11-12 17:31:29 +03:00
Sergej Jaskiewicz
f1cc94adff
Implement Publishers.Output
2019-11-11 20:26:31 +03:00
Sergej Jaskiewicz
25ac4dfa5f
Fix SwiftLint crash
...
https://github.com/realm/SwiftLint/issues/2793
2019-11-09 15:26:50 +03:00
Sergej Jaskiewicz
f069f9b9fa
Audit DropWhile/TryDropWhile for thread safety ( #87 )
...
Add more tests, make them pass
2019-10-25 15:45:40 +03:00
Sergej Jaskiewicz
55bdbba0f9
Publishers.Print: cancel new subscription if Inner is already subscribed ( #92 )
2019-10-24 15:11:55 +03:00
Sergej Jaskiewicz
1290545c49
Audit IgnoreOutput for thread safety, add more tests, make them pass ( #88 )
2019-10-23 23:44:59 +03:00
Sergej Jaskiewicz
aed074af43
Add tests for Subscriptions.empty
2019-10-23 20:30:46 +03:00
Sergej Jaskiewicz
11ec7c89e6
Gybify Encode/Decode, add more tests, make them pass
2019-10-23 20:30:46 +03:00
Sergej Jaskiewicz
46007658a1
Add missing Equatable comformances
...
- Collect
- Contains
- Count
- Drop
- Last
2019-10-17 14:40:56 +03:00
Sergej Jaskiewicz
c4c7f2172d
Add more tests for Scan, TryScan
2019-10-17 14:40:56 +03:00
Eric Patey
5b0a21a0b9
Implement Publishers.Scan
2019-10-17 14:40:56 +03:00
Sergej Jaskiewicz
f4e191b2ff
Add more tests for Publishers.Drop ( #82 )
2019-10-17 09:41:53 +03:00
Sven
c275e51cdc
Implement Publishers.Drop ( #70 )
2019-10-16 13:26:10 +03:00
Sergej Jaskiewicz
ef3ebd965a
Extract locking API into COpenCombineHelpers module
2019-10-16 02:10:47 +03:00
Sergej Jaskiewicz
a08b99c886
Fix a compiler crash on Linux
...
This crash could only be reproduced in release configuration
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
3398499540
Remove Unreachable.swift
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
3a88dfd76b
Implemented Comparison. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
bd0b69d7cb
Implement Collect. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
dba76c3c41
Implement Contains, ContainsWhere, TryContainsWhere. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
5863492753
Implement AllSatisfy, TryAllSatisfy. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Joe Spadafora
2f2e16ee1f
Implement Last, LastWhere, TryLastWhere. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
bca131c2a4
Simplify Publishers.Count. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
e999fafdce
Simplify First, FirstWhere, TryFirstWhere. Use ReduceProducer.
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
b38830e0f1
Implement Reduce, TryReduce. Use ReduceProducer
2019-10-15 20:51:44 +03:00
Sergej Jaskiewicz
525405f64d
Implement ReduceProducer
...
ReduceProducer is a helper class that makes implementing reduce-like
operators trivial.
2019-10-15 20:51:44 +03:00