diff --git a/CHANGELOG.md b/CHANGELOG.md index e53e5cc5d..ed97c225c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ 1. Fix minimum deployment target of iOS 11 in CocoaPods 1. Fix CI release git tag push trigger (#869, kudos to @p4checo) 1. Find and remove items from Bag using a binary search to improve performance when the collection gets large. +2. Add extension to `ScopedDisposable` for inner `SerialDisposable` (#873, kudos to @sirnacnud) # 7.1.1 1. Bumped deployment target to iOS 11, tvOS 11, watchOS 4, macOS 10.13, per Xcode 14 warnings (#865, kudos to @lickel) diff --git a/Sources/Disposable.swift b/Sources/Disposable.swift index 4930c83cf..0614d36ac 100644 --- a/Sources/Disposable.swift +++ b/Sources/Disposable.swift @@ -378,3 +378,19 @@ public final class SerialDisposable: Disposable { state.deinitialize() } } + +extension ScopedDisposable where Inner == SerialDisposable { + /// The current inner disposable of the `SerialDisposable` wrapped + /// in the `ScopedDisposable` to dispose of. + /// + /// Whenever this property is set (even to the same value!), the previous + /// disposable is automatically disposed. + public var inner: Disposable? { + get { + return inner.inner + } + set { + inner.inner = newValue + } + } +}