Skip to content

Commit 4bc0c81

Browse files
committed
Rename the producer cores. Code formatting improvements.
1 parent 950d2a3 commit 4bc0c81

File tree

1 file changed

+54
-49
lines changed

1 file changed

+54
-49
lines changed

Sources/SignalProducer.swift

Lines changed: 54 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
2323
/// of:
2424
///
2525
/// 1. handling the single-observer `start`; and
26-
/// 2. building `Signal`s on demand via its `make()` method, which produces a
26+
/// 2. building `Signal`s on demand via its `makeInstance()` method, which produces a
2727
/// `Signal` with the associated side effect and interrupt handle.
2828
fileprivate let core: SignalProducerCore<Value, Error>
2929

@@ -69,7 +69,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
6969
let observerDidSetup = { startHandler(observer, Lifetime(disposable)) }
7070
let interruptHandle = AnyDisposable(observer.sendInterrupted)
7171

72-
return SignalProducerCore.ProducedSignalReceipt(signal: signal,
72+
return SignalProducerCore.Instance(signal: signal,
7373
observerDidSetup: observerDidSetup,
7474
interruptHandle: interruptHandle)
7575
})
@@ -90,7 +90,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
9090
/// - value: A value that should be sent by the `Signal` in a `value`
9191
/// event.
9292
public init(value: Value) {
93-
self.init(EventGeneratingCore { observer, _ in
93+
self.init(GeneratorCore { observer, _ in
9494
observer.send(value: value)
9595
observer.sendCompleted()
9696
})
@@ -107,7 +107,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
107107
/// - action: A action that yields a value to be sent by the `Signal` as
108108
/// a `value` event.
109109
public init(_ action: @escaping () -> Value) {
110-
self.init(EventGeneratingCore { observer, _ in
110+
self.init(GeneratorCore { observer, _ in
111111
observer.send(value: action())
112112
observer.sendCompleted()
113113
})
@@ -123,7 +123,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
123123
/// - parameters:
124124
/// - action: A closure that returns instance of `Result`.
125125
public init(_ action: @escaping () -> Result<Value, Error>) {
126-
self.init(EventGeneratingCore { observer, _ in
126+
self.init(GeneratorCore { observer, _ in
127127
switch action() {
128128
case let .success(value):
129129
observer.send(value: value)
@@ -141,7 +141,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
141141
/// - error: An error that should be sent by the `Signal` in a `failed`
142142
/// event.
143143
public init(error: Error) {
144-
self.init(EventGeneratingCore { observer, _ in observer.send(error: error) })
144+
self.init(GeneratorCore { observer, _ in observer.send(error: error) })
145145
}
146146

147147
/// Creates a producer for a Signal that will immediately send one value
@@ -168,7 +168,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
168168
/// - values: A sequence of values that a `Signal` will send as separate
169169
/// `value` events and then complete.
170170
public init<S: Sequence>(_ values: S) where S.Iterator.Element == Value {
171-
self.init(EventGeneratingCore(isDisposable: true) { observer, disposable in
171+
self.init(GeneratorCore(isDisposable: true) { observer, disposable in
172172
for value in values {
173173
observer.send(value: value)
174174

@@ -195,7 +195,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
195195
/// A producer for a Signal that will immediately complete without sending
196196
/// any values.
197197
public static var empty: SignalProducer {
198-
return SignalProducer(EventGeneratingCore { observer, _ in observer.sendCompleted() })
198+
return SignalProducer(GeneratorCore { observer, _ in observer.sendCompleted() })
199199
}
200200

201201
/// A producer for a Signal that never sends any events to its observers.
@@ -213,7 +213,7 @@ public struct SignalProducer<Value, Error: Swift.Error> {
213213
/// `Signal` commences. Both the produced `Signal` and an interrupt handle
214214
/// of the signal would be passed to the closure.
215215
public func startWithSignal(_ setup: (_ signal: Signal<Value, Error>, _ interruptHandle: Disposable) -> Void) {
216-
let receipt = core.make()
216+
let receipt = core.makeInstance()
217217
setup(receipt.signal, receipt.interruptHandle)
218218
guard !receipt.interruptHandle.isDisposed else { return }
219219
receipt.observerDidSetup()
@@ -226,20 +226,20 @@ public struct SignalProducer<Value, Error: Swift.Error> {
226226
/// instances of `Signal`s, the abstraction enables room of optimization for common
227227
/// compositional and single-observer use cases.
228228
internal class SignalProducerCore<Value, Error: Swift.Error> {
229-
/// `ProducedSignalReceipt` represents an instance of `Signal` created from a
229+
/// `Instance` represents an instance of `Signal` created from a
230230
/// `SignalProducer`. In addition to the `Signal` itself, it includes also the
231231
/// starting side effect and an interrupt handle for this particular instance.
232232
///
233-
/// It is the responsibility of the `ProducedSignalReceipt` consumer to ensure the
233+
/// It is the responsibility of the `Instance` consumer to ensure the
234234
/// starting side effect is invoked exactly once, and is invoked after observations
235235
/// has properly setup.
236-
struct ProducedSignalReceipt {
236+
struct Instance {
237237
let signal: Signal<Value, Error>
238238
let observerDidSetup: () -> Void
239239
let interruptHandle: Disposable
240240
}
241241

242-
func make() -> ProducedSignalReceipt {
242+
func makeInstance() -> Instance {
243243
fatalError()
244244
}
245245

@@ -258,30 +258,30 @@ internal class SignalProducerCore<Value, Error: Swift.Error> {
258258
///
259259
/// - returns: A producer that forwards events yielded by the action.
260260
internal func flatMapEvent<U, E>(_ transform: @escaping (@escaping Signal<U, E>.Observer.Action) -> (Signal<Value, Error>.Event) -> Void) -> SignalProducer<U, E> {
261-
return SignalProducer<U, E>(EventTransformingCore(source: self, transform: transform))
261+
return SignalProducer<U, E>(TransformerCore(source: self, transform: transform))
262262
}
263263
}
264264

265265
private final class SignalCore<Value, Error: Swift.Error>: SignalProducerCore<Value, Error> {
266-
private let _make: () -> ProducedSignalReceipt
266+
private let _make: () -> Instance
267267

268-
init(_ action: @escaping () -> ProducedSignalReceipt) {
268+
init(_ action: @escaping () -> Instance) {
269269
self._make = action
270270
}
271271

272272
override func start(_ observer: Signal<Value, Error>.Observer) -> Disposable {
273-
let instance = make()
273+
let instance = makeInstance()
274274
instance.signal.observe(observer)
275275
instance.observerDidSetup()
276276
return instance.interruptHandle
277277
}
278278

279-
override func make() -> ProducedSignalReceipt {
279+
override func makeInstance() -> Instance {
280280
return _make()
281281
}
282282
}
283283

284-
/// `EventTransformingCore` composes event transforms, and is intended to back synchronous
284+
/// `TransformerCore` composes event transforms, and is intended to back synchronous
285285
/// `SignalProducer` operators in general via the core-level operator `Core.flatMapEvent`.
286286
///
287287
/// It takes advantage of the deferred, single-observer nature of SignalProducer. For
@@ -295,11 +295,11 @@ private final class SignalCore<Value, Error: Swift.Error>: SignalProducerCore<Va
295295
/// chain of streams, each with a _single and persistent_ observer to its upstream. The
296296
/// multicasting & detaching capabilities of Signal is useless in these scenarios.
297297
///
298-
/// So EventTransformingCore builds on top of this very fact, and composes directly at the
298+
/// So TransformerCore builds on top of this very fact, and composes directly at the
299299
/// level of event transforms, without any `Signal` in between.
300300
///
301-
/// - note: This core does not use Signal unless it is requested via `make()`.
302-
private final class EventTransformingCore<Value, Error: Swift.Error, SourceValue, SourceError: Swift.Error>: SignalProducerCore<Value, Error> {
301+
/// - note: This core does not use `Signal` unless it is requested via `makeInstance()`.
302+
private final class TransformerCore<Value, Error: Swift.Error, SourceValue, SourceError: Swift.Error>: SignalProducerCore<Value, Error> {
303303
private let source: SignalProducerCore<SourceValue, SourceError>
304304
private let transform: (@escaping Signal<Value, Error>.Observer.Action) -> (Signal<SourceValue, SourceError>.Event) -> Void
305305

@@ -313,30 +313,32 @@ private final class EventTransformingCore<Value, Error: Swift.Error, SourceValue
313313
}
314314

315315
internal override func flatMapEvent<U, E>(_ transform: @escaping (@escaping Signal<U, E>.Observer.Action) -> (Signal<Value, Error>.Event) -> Void) -> SignalProducer<U, E> {
316-
return SignalProducer<U, E>(EventTransformingCore<U, E, SourceValue, SourceError>(source: source) { [innerTransform = self.transform] action in
316+
return SignalProducer<U, E>(TransformerCore<U, E, SourceValue, SourceError>(source: source) { [innerTransform = self.transform] action in
317317
return innerTransform(transform(action))
318318
})
319319
}
320320

321-
internal override func make() -> ProducedSignalReceipt {
322-
let product = source.make()
321+
internal override func makeInstance() -> Instance {
322+
let product = source.makeInstance()
323323
let signal = Signal<Value, Error> { observer in
324324
return product.signal.observe(.init(observer, transform))
325325
}
326326

327-
return ProducedSignalReceipt(signal: signal,
327+
return Instance(signal: signal,
328328
observerDidSetup: product.observerDidSetup,
329329
interruptHandle: product.interruptHandle)
330330
}
331331
}
332332

333-
/// `EventGeneratingCore` wraps a generator closure that would be invoked upon a produced
333+
/// `GeneratorCore` wraps a generator closure that would be invoked upon a produced
334334
/// `Signal` when started. The generator closure is passed only the input observer and the
335335
/// cancel disposable.
336336
///
337337
/// It is intended for constant `SignalProducers`s that synchronously emits all events
338338
/// without escaping the `Observer`.
339-
private final class EventGeneratingCore<Value, Error: Swift.Error>: SignalProducerCore<Value, Error> {
339+
///
340+
/// - note: This core does not use `Signal` unless it is requested via `makeInstance()`.
341+
private final class GeneratorCore<Value, Error: Swift.Error>: SignalProducerCore<Value, Error> {
340342
private let isDisposable: Bool
341343
private let generator: (Signal<Value, Error>.Observer, Disposable) -> Void
342344

@@ -353,11 +355,11 @@ private final class EventGeneratingCore<Value, Error: Swift.Error>: SignalProduc
353355
return d
354356
}
355357

356-
internal override func make() -> ProducedSignalReceipt {
358+
internal override func makeInstance() -> Instance {
357359
let (signal, observer) = Signal<Value, Error>.pipe()
358360
let d = AnyDisposable(observer.sendInterrupted)
359361

360-
return ProducedSignalReceipt(signal: signal,
362+
return Instance(signal: signal,
361363
observerDidSetup: { self.generator(observer, d) },
362364
interruptHandle: d)
363365
}
@@ -371,7 +373,7 @@ extension SignalProducer where Error == NoError {
371373
/// - value: A value that should be sent by the `Signal` in a `value`
372374
/// event.
373375
public init(value: Value) {
374-
self.init(EventGeneratingCore { observer, _ in
376+
self.init(GeneratorCore { observer, _ in
375377
observer.send(value: value)
376378
observer.sendCompleted()
377379
})
@@ -384,7 +386,7 @@ extension SignalProducer where Error == NoError {
384386
/// - values: A sequence of values that a `Signal` will send as separate
385387
/// `value` events and then complete.
386388
public init<S: Sequence>(_ values: S) where S.Iterator.Element == Value {
387-
self.init(EventGeneratingCore(isDisposable: true) { observer, disposable in
389+
self.init(GeneratorCore(isDisposable: true) { observer, disposable in
388390
for value in values {
389391
observer.send(value: value)
390392

@@ -594,30 +596,33 @@ extension SignalProducer {
594596
return SignalProducer<U, F>(SignalCore {
595597
// Transform the `Signal`, and pass through the `didCreate` side effect and
596598
// the interruptHandle.
597-
let receipt = self.core.make()
599+
let receipt = self.core.makeInstance()
598600
return .init(signal: transform(receipt.signal),
599601
observerDidSetup: receipt.observerDidSetup,
600602
interruptHandle: receipt.interruptHandle)
601-
})
603+
})
602604
}
603605

604606
private func lift<U, F, V, G>(leftFirst: Bool, _ transform: @escaping (Signal<Value, Error>) -> (Signal<U, F>) -> Signal<V, G>) -> (SignalProducer<U, F>) -> SignalProducer<V, G> {
605607
return { otherProducer in
606608
return SignalProducer<V, G>(SignalCore {
607-
let left = self.core.make()
608-
let right = otherProducer.core.make()
609-
610-
return .init(signal: transform(left.signal)(right.signal),
611-
observerDidSetup: {
612-
if leftFirst {
613-
left.observerDidSetup()
614-
right.observerDidSetup()
615-
} else {
616-
right.observerDidSetup()
617-
left.observerDidSetup()
618-
}},
619-
interruptHandle: CompositeDisposable([left.interruptHandle, right.interruptHandle]))
620-
})
609+
let left = self.core.makeInstance()
610+
let right = otherProducer.core.makeInstance()
611+
612+
return .init(
613+
signal: transform(left.signal)(right.signal),
614+
observerDidSetup: {
615+
if leftFirst {
616+
left.observerDidSetup()
617+
right.observerDidSetup()
618+
} else {
619+
right.observerDidSetup()
620+
left.observerDidSetup()
621+
}
622+
},
623+
interruptHandle: CompositeDisposable([left.interruptHandle, right.interruptHandle])
624+
)
625+
})
621626
}
622627
}
623628

@@ -1684,7 +1689,7 @@ extension SignalProducer {
16841689
value: ((Value) -> Void)? = nil
16851690
) -> SignalProducer<Value, Error> {
16861691
return SignalProducer(SignalCore {
1687-
let instance = self.core.make()
1692+
let instance = self.core.makeInstance()
16881693
let signal = instance.signal.on(event: event,
16891694
failed: failed,
16901695
completed: completed,

0 commit comments

Comments
 (0)