extension Reactive {
/// A proxy which holds reactive binding target extensions of `Base`.
struct Binds {
fileprivate init(_ base: Base) { self.base = base }
let base: Base
}
var bind: Binds { return Binds(self.base) }
/// A proxy which holds reactive signal extensions of `Base`.
struct Signals {
fileprivate init(_ base: Base) { self.base = base }
let base: Base
}
var signal: Signals { return Signals(self.base) }
/// A proxy which holds reactive signal producer extensions of `Base`.
struct Producers {
fileprivate init(_ base: Base) { self.base = base }
let base: Base
}
var producer: Producers { return Producers(self.base) }
}
extension Reactive.Binds where Base: ReactiveExtensionsProvider {
/// Convenience `self.base.reactive` accessor.
var reactive: Reactive { return self.base.reactive }
}
extension Reactive.Signals where Base: ReactiveExtensionsProvider {
/// Convenience `self.base.reactive` accessor.
var reactive: Reactive { return self.base.reactive }
}
extension Reactive.Producers where Base: ReactiveExtensionsProvider {
/// Convenience `self.base.reactive` accessor.
var reactive: Reactive { return self.base.reactive }
}