A Source is something that can be converted to an Observable. The counterparty to Source is a Sink, something that can be converted to an Observer.
A Source could be an Observable itself, an EventBus, a Var, or, via implicits, a third party type like Future or ZIO.
The point of using Source instead of Observable in your API is to let the end users
pass simply eventBus
instead of eventBus.events
to a method that requires Source,
and to achieve that without having an implicit conversion from EventBus to Observable,
because then you'd also want an implicit conversion from EventBus to Observer, and
those two would be incompatible (e.g. both Observable and Observer have a filter method).
- Companion:
- object
class Object
trait Matchable
class Any
trait EventStream[A]
trait WritableEventStream[A]
class MergeEventStream[A]
class CustomStreamSource[A]
class DebuggerEventStream[A]
class EventBusStream[A]
class ConcurrentEventStream[A]
class ConcurrentFutureStream[A]
class FilterEventStream[A]
class DebounceEventStream[A]
class DelayEventStream[A]
class FutureEventStream[A]
class PeriodicEventStream[A]
class SyncDelayEventStream[A]
class ThrottleEventStream[A]
class AjaxEventStream
trait Observable[A]
trait DebuggerObservable[A]
class DebuggerSignal[A]
class SwitchSignal[A]
class ObservedSignal[A]
class SignalFromEventStream[A]
trait Signal[A]
trait WritableSignal[A]
class CustomSignalSource[A]
class Val[A]
class FutureSignal[A]
trait StrictSignal[A]
trait OwnedSignal[A]
trait SyncObservable[A]
trait CombineObservable[A]
trait WritableObservable[A]
trait CustomSource[A]
trait EventSource[A]
class EventBus[A]
trait SignalSource[A]
trait Var[A]
class SourceVar[A]