# RxSmartThrottle

`Observable.throttle` with custom interval.

## Example: Exponential Backoff
```swift
source
    .throttle(dueTime: { max($1 * 2, 1) }, // (E, RxTimeInterval) -> RxTimeInterval
              resetWhen: resetTrigger,     // Observable<U>
              latest: true,
              scheduler: scheduler)
    .disposed(by: disposeBag)
```

With the parameters above,

- throttle interval increases exponentially (1, 2, 4, 8...),
- until the `resetWhen`'s next event.

After `resetWhen`, throttle interval is reset to 0 (meaning that next `source`'s event will be forwarded immediately)

# Install
Copy paste source file to your project for now. 👌

I'm just too lazy to support Carthage or CocoaPods. It's Saturday afternoon.

# LICENSE
MIT
