Swiftpack.co - Package -

Combine Printout Logo

A Combine micro debugging framework. It helps you log subscription events to the console so you can track their life cycle.


A debugging print sink

The built-in print() operator is useful but you still need to add a subscriber to your subscription. printSink() is a subscriber that you can use to debug a subscription without the need to add a separate subscriber like so:

Just(["One", "Two"])

printSink() will subscribe the publisher and log all events like so:

Sink: output(["One", "Two"]) 
Sink: finished

A debugging print cancellable

If you're building more complex memory management logic or not sure when are your cancellables released you can use printCancellable() to log a given Cancellable's life cycle like so:

Just(["One", "Two"])
  .assign(to: \.model, on: self)
  .store(in: &subscriptions)

printCancellable() wraps the AnyCancellable returned from assign(to:on:) and logs all the received events:

Cancellable: init 
(self.subscriptions is released from memory)
Cancellable: cancel 
Cancellable: deinit 


Swift Package Manager

Add the following dependency to your Package.swift file:

.package(url: "https://github.com/combineopensource/CombinePrintout, from: "0.2")


CombineOpenSource is available under the MIT license. See the LICENSE file for more info.


Copyright (c) 2019 Combine Open Source

Created by: Marin Todorov


Help us keep the lights on


Used By

Total: 0