Structures

The following structures are available globally.

  • A collection of utility methods for common disposable operations.

    See more

    Declaration

    Swift

    public struct Disposables
  • A type-erased ObserverType.

    Forwards operations to an arbitrary underlying observer with the same Element type, hiding the specifics of the underlying observer type.

    See more

    Declaration

    Swift

    public struct AnyObserver<Element> : ObserverType
  • Observer that enforces interface binding rules:

    • can’t bind errors (in debug builds binding of errors causes fatalError in release builds errors are being logged)
    • ensures binding is performed on a specific scheduler

    Binder doesn’t retain target and in case target is released, element isn’t bound.

    By default it binds elements on main scheduler.

    See more

    Declaration

    Swift

    public struct Binder<Value> : ObserverType
  • Represents an observable sequence of elements that have a common key.

    See more

    Declaration

    Swift

    public struct GroupedObservable<Key, Element> : ObservableType
  • Converts historical virtual time into real time.

    Since historical virtual time is also measured in Date, this converter is identity function.

    See more

    Declaration

    Swift

    public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType
  • Infallible is an Observable-like push-style interface which is guaranteed to not emit error events.

    Unlike SharedSequence, it does not share its resources or replay its events, but acts as a standard Observable.

    See more

    Declaration

    Swift

    public struct Infallible<Element> : InfallibleType
  • Resource utilization information

    See more
  • Observable sequences containing 0 or 1 element.

    See more

    Declaration

    Swift

    public struct PrimitiveSequence<Trait, Element>
    extension PrimitiveSequence: PrimitiveSequenceType
    extension PrimitiveSequence: ObservableConvertibleType
  • Use Reactive proxy as customization point for constrained protocol extensions.

    General pattern would be:

    // 1. Extend Reactive protocol with constrain on Base // Read as: Reactive Extension where Base is a SomeType extension Reactive where Base: SomeType { // 2. Put any specific reactive extension for SomeType here }

    With this approach we can have more specialized methods and properties using Base and not just specialized on common base type.

    Binders are also automatically synthesized using @dynamicMemberLookup for writable reference properties of the reactive base.

    See more

    Declaration

    Swift

    @dynamicMemberLookup
    public struct Reactive<Base>