Docs for Reactive protocol

This commit is contained in:
Yury Korolev 2016-05-03 12:01:23 +03:00
parent c5a21681a8
commit 2e6cfdc15c
1 changed files with 22 additions and 0 deletions

View File

@ -6,6 +6,28 @@
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
//
/**
We can use `Reactive` protocol as customization point for constrained protocol extensions.
General pattern would be:
```swift
// 1. Conform SomeType to Reactive protocol
extension SomeType: Reactive {}
// 2. Extend Reactive protocol with constrain on Self
// Read as: Reactive Extension where Self is a SomeType
extension Reactive where Self: SomeType {
// 3. Put any specific reactive extension for SomeType here
}
```
With this approach we can have more specialized methods and properties using
`Self` and not just specialized on common base type.
See UIGestureRecognizer+Rx.swift as an example
*/
public protocol Reactive {
}