44import Foundation
55import Combine
66
7+ /// CombineLobster is a extension class with Combine.
8+ ///
9+ /// It allows you handle Lobster with Combine
710@available ( iOS 13 . 0 , * )
811public struct CombineLobster {
912 fileprivate let lobster : Lobster
1013}
1114
1215@available ( iOS 13 . 0 , * )
13- public extension CombineLobster {
14-
16+ extension CombineLobster {
1517 class Subscription < S: Subscriber > {
1618 var subscriber : S ?
1719 var cancellable : AnyCancellable ?
@@ -118,15 +120,21 @@ public extension CombineLobster {
118120
119121}
120122
123+ /// Extensions for Lobster
121124@available ( iOS 13 . 0 , * )
122125public extension Lobster {
126+ /// Returns `CombineLobster`.
123127 var combine : CombineLobster {
124128 CombineLobster ( lobster: self )
125129 }
126130}
127131
132+ /// Extensions for CombineLobster
128133@available ( iOS 13 . 0 , * )
129134public extension CombineLobster {
135+ /// Returns Publisher that tells you that Lobster has fetched latest valeus from RemoteConfig.
136+ ///
137+ /// - Returns: A publisher `<Void, Error>`
130138 func fetched( ) -> AnyPublisher < Void , Error > {
131139 return NotificationCenter . default. publisher ( for: Lobster . didFetchConfig)
132140 . tryMap { ( notification) in
@@ -138,11 +146,17 @@ public extension CombineLobster {
138146 . eraseToAnyPublisher ( )
139147 }
140148
149+ /// Returns Publisher that gives you a value matched a config key after fetching from RemoteConfig.
150+ ///
151+ /// - Returns: A publisher `<T.Value, Error>`
141152 func fetched< T: ConfigSerializable > ( _ key: ConfigKey < T > ) -> AnyPublisher < T . Value , Never > {
142153 return ConfigValuePublisher ( lobster: lobster, key: key)
143154 . eraseToAnyPublisher ( )
144155 }
145156
157+ /// Returns Publisher that gives you an optional value matched a config key after fetching from RemoteConfig.
158+ ///
159+ /// - Returns: A publisher `<T.Value?, Error>`
146160 func fetched< T: ConfigSerializable > ( _ key: ConfigKey < T ? > ) -> AnyPublisher < T . Value ? , Never > {
147161 return ConfigValueOptionalPublisher ( lobster: lobster, key: key)
148162 . eraseToAnyPublisher ( )
0 commit comments