ControlNotificationStream.compactMap(_:)
Creates an asynchronous sequence that maps an error-throwing closure over the base sequence’s elements, omitting results that don't return a value.
Source and package
- Qualified name
-
ControlNotification Stream. compact Map(_:) - Declared in
ControlNotificationStream- Package
- libtmux-swift
- compactMap( transform: (Self.Element) async throws -> Element
Of ? ) -> AsyncThrowingCompactMapSequence<Self, ElementResult Of >compactMap( transform: (Self.Element) async -> ElementResult Of ? ) -> AsyncCompactMapSequence<Self, ElementResult Of >Result -
Inherited from
AsyncSequence.compactMap(_:)Description#
Use the
compactMap(_:)method to transform every element received from a base asynchronous sequence, while also discarding anynilresults from the closure. Typically, you use this to transform from one type of element to another.In this example, an asynchronous sequence called
CounterproducesIntvalues from1to5. The closure provided to thecompactMap(_:)method takes eachIntand looks up a correspondingStringfrom aromanNumeralDictdictionary. Since there is no key for4, the closure returnsnilin this case, whichcompactMap(_:)omits from the transformed asynchronous sequence. When the value is5, the closure throwsMyError, terminating the sequence.let romanNumeralDict: [Int: String] = [1: "I", 2: "II", 3: "III", 5: "V"]
do { let stream = Counter(howHigh: 5) .compactMap { (value) throws -> String? in if value == 5 { throw MyError() } return romanNumeralDict[value] } for try await numeral in stream { print(numeral, terminator: " ") } } catch { print("Error: \(error)") } // Prints "I II III Error: MyError() "
- Parameter transform: An error-throwing mapping closure.
transformaccepts an element of this sequence as its parameter and returns a transformed value of the same or of a different type. Iftransformthrows an error, the sequence ends. - Returns: An asynchronous sequence that contains, in order, the non-
nilelements produced by thetransformclosure. The sequence ends either when the base sequence ends or whentransformthrows an error.
- Type parameters
- Parameters
-
-
transform((Self.Element) async throws -> ElementOf ?) # forResult compactMap(transform) [overload 1] -
transform((Self.Element) async -> ElementOf ?) # forResult compactMap(transform) [overload 2]
-
- Parameter transform: An error-throwing mapping closure.