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 WritableStream[A]
class MergeStream[A]
class DebuggerStream[A]
class DistinctStream[A]
class DropStream[A]
class FilterStream[A]
class StreamFromSignal[A]
class TakeStream[A]
class DebounceStream[A]
class DelayStream[A]
class SyncDelayStream[A]
class ThrottleStream[A]
class CustomStreamSource[A]
class EventBusStream[A]
class ConcurrentStream[A]
class SwitchSignalStream[A]
class JsPromiseStream[A]
class PeriodicStream[A]
class AjaxStream
class FetchStream
trait Observable[A]
trait Signal[A]
trait WritableSignal[A]
class DebuggerSignal[A]
class DistinctSignal[A]
class ObservedSignal[A]
class SignalFromStream[A]
class CustomSignalSource[A]
class SwitchSignal[A]
class Val[A]
class JsPromiseSignal[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]