Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove overdue deprecations and remove observable value tracking #274

Merged
merged 47 commits into from
Nov 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
344c5ae
make reactive state variables lazy
cornerman Dec 4, 2022
7eacf42
add Var.none/some/subjectSync
cornerman Jan 9, 2023
e1cdcf3
format
cornerman Jan 9, 2023
87b2dcb
update readme about reactive variables
cornerman Jan 9, 2023
bb812b5
remove Rx#scan without seed
cornerman Jan 10, 2023
457d1f3
fix tapLater
cornerman Jan 10, 2023
5802427
Revert "remove Rx#scan without seed"
cornerman Jan 10, 2023
788bda4
add RxEvent and VarEvent for (mostly) shared event streams
cornerman Jan 13, 2023
c77a13b
add tests
cornerman Jan 13, 2023
5ddf178
format
cornerman Jan 13, 2023
31f2a1c
update readme
cornerman Jan 13, 2023
7af27ca
wip
cornerman Jan 14, 2023
1a8b5bc
delete duplicate distinct
cornerman Jan 14, 2023
5933f80
wip
cornerman Jan 16, 2023
d12cb0b
wip
cornerman Jan 16, 2023
8cedd91
wip
cornerman Jan 16, 2023
bc4fe34
rename
cornerman Jan 16, 2023
2fb358c
format
cornerman Jan 16, 2023
2587261
fix
cornerman Jan 16, 2023
24eabdd
remove unnecessary type params for observer flatten methods
cornerman Jan 16, 2023
ef6fa70
fix stateful transform with Var.from (renamed from combine)
cornerman Jan 16, 2023
a1972ef
simplify
cornerman Jan 16, 2023
bedefe6
again
cornerman Jan 16, 2023
3ea7b6e
ok
cornerman Jan 16, 2023
8bbd80b
readme
cornerman Jan 16, 2023
0a91198
generic self types
cornerman Jan 17, 2023
558d815
rename
cornerman Jan 18, 2023
248fa06
format
cornerman Jan 18, 2023
6dd2d50
fix rxsource object
cornerman Jan 18, 2023
b514a8f
methods
cornerman Jan 18, 2023
b9b8746
format
cornerman Jan 20, 2023
0c981c2
Merge branch 'master' into lazy-rx
cornerman Aug 18, 2023
0e4fcfe
improvements
cornerman Aug 22, 2023
c8f667b
Update README.md
cornerman Sep 20, 2023
a891bf0
Merge branch 'master' into lazy-rx
cornerman Nov 6, 2023
809e29c
Update README.md
cornerman Nov 6, 2023
453eb88
add void
cornerman Nov 6, 2023
29351ce
undeprecate to again
cornerman Nov 6, 2023
4383662
fix Cancelable.Builder if it is cancelled while subscribing
cornerman Nov 8, 2023
e8454a4
own subscription for now() in lens()
cornerman Nov 8, 2023
de02047
fix
cornerman Nov 8, 2023
6021446
minor refactoring
cornerman Nov 8, 2023
0c385e8
Revert "minor refactoring"
cornerman Nov 10, 2023
e677b91
remove observables types for Hot/Value/MaybeValue
cornerman Dec 7, 2022
5d52d9d
remove overdue deprecations
cornerman Dec 7, 2022
67a35dd
Merge branch 'master' into deprecate
cornerman Nov 10, 2023
6a0bd85
remove Observable.lens test because does not exist anymore
cornerman Nov 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions colibri/src/main/scala/colibri/CanCancel.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ package colibri

trait CanCancel[-T] {
def unsafeCancel(cancelable: T): Unit

@deprecated("Use unsafeCancel instead", "0.2.7")
@inline final def cancel(cancelable: T): Unit = unsafeCancel(cancelable)
}
object CanCancel {
@inline def apply[T](implicit unsafeCancel: CanCancel[T]): CanCancel[T] = unsafeCancel
Expand Down
3 changes: 0 additions & 3 deletions colibri/src/main/scala/colibri/Cancelable.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ trait Cancelable {
def isEmpty(): Boolean
def unsafeCancel(): Unit

@deprecated("Use unsafeCancel() instead", "0.2.7")
@inline final def cancel(): Unit = unsafeCancel()

final def cancelF[F[_]: Sync]: F[Unit] = Sync[F].delay(unsafeCancel())
final def cancelIO: IO[Unit] = cancelF[IO]
final def cancelSyncIO: SyncIO[Unit] = cancelF[SyncIO]
Expand Down
48 changes: 9 additions & 39 deletions colibri/src/main/scala/colibri/Connectable.scala
Original file line number Diff line number Diff line change
@@ -1,55 +1,25 @@
package colibri

final class Connectable[+T] private (val value: T, val connect: () => Cancelable) {
def map[A](f: T => A): Connectable[A] = new Connectable(f(value), connect)
final class Connectable[+T] private (val value: T, val unsafeConnect: () => Cancelable) {
def map[A](f: T => A): Connectable[A] = new Connectable(f(value), unsafeConnect)
def flatMap[A](f: T => Connectable[A]): Connectable[A] = {
val connectable = f(value)
new Connectable(connectable.value, () => Cancelable.composite(connect(), connectable.connect()))
new Connectable(connectable.value, () => Cancelable.composite(unsafeConnect(), connectable.unsafeConnect()))
}
}
object Connectable {
def apply[T](value: T, connect: () => Cancelable) = {
val cancelable = Cancelable.refCount(connect)
def apply[T](value: T, unsafeConnect: () => Cancelable) = {
val cancelable = Cancelable.refCount(unsafeConnect)
new Connectable(value, cancelable.ref)
}

@inline implicit class ConnectableObservableOperations[A](val source: Connectable[Observable[A]]) extends AnyVal {
def refCount: Observable[A] = new Observable[A] {
def unsafeSubscribe(sink: Observer[A]): Cancelable = Cancelable.composite(source.value.unsafeSubscribe(sink), source.connect())
def unsafeSubscribe(sink: Observer[A]): Cancelable = Cancelable.composite(source.value.unsafeSubscribe(sink), source.unsafeConnect())
}
@deprecated("Use unsafeHot instead", "0.5.0")
def hot: Observable.Hot[A] = unsafeHot()
def unsafeHot(): Observable.Hot[A] = new Observable.Hot[A] {
val cancelable = source.connect()
def unsafeSubscribe(sink: Observer[A]): Cancelable = source.value.unsafeSubscribe(sink)
}
}

@inline implicit class ConnectableObservableValueOperations[A](val source: Connectable[Observable.Value[A]]) extends AnyVal {
def refCount: Observable.Value[A] = new Observable.Value[A] {
def now() = source.value.now()
def unsafeSubscribe(sink: Observer[A]): Cancelable = Cancelable.composite(source.value.unsafeSubscribe(sink), source.connect())
}
@deprecated("Use unsafeHot instead", "0.7.8")
def hot: Observable.HotValue[A] = unsafeHot()
def unsafeHot(): Observable.HotValue[A] = new Observable.HotValue[A] {
val cancelable = source.connect()
def now() = source.value.now()
def unsafeSubscribe(sink: Observer[A]): Cancelable = source.value.unsafeSubscribe(sink)
}
}

@inline implicit class ConnectableObservableMaybeValueOperations[A](val source: Connectable[Observable.MaybeValue[A]]) extends AnyVal {
def refCount: Observable.MaybeValue[A] = new Observable.MaybeValue[A] {
def now() = source.value.now()
def unsafeSubscribe(sink: Observer[A]): Cancelable = Cancelable.composite(source.value.unsafeSubscribe(sink), source.connect())
}
@deprecated("Use unsafeHot instead", "0.7.8")
def hot: Observable.HotMaybeValue[A] = unsafeHot()
def unsafeHot(): Observable.HotMaybeValue[A] = new Observable.HotMaybeValue[A] {
val cancelable = source.connect()
def now() = source.value.now()
def unsafeSubscribe(sink: Observer[A]): Cancelable = source.value.unsafeSubscribe(sink)
def unsafeHot(): Observable[A] = {
val _ = source.unsafeConnect()
source.value
}
}
}
Loading