Coverage Summary for Class: ExtensionsKt (vit.khudenko.android.sessiontracker)
Class |
Method, %
|
Line, %
|
ExtensionsKt |
100%
(1/1)
|
100%
(5/5)
|
ExtensionsKt$sessionStateTransitionsSupplier$2$1 |
100%
(1/1)
|
100%
(1/1)
|
Total |
100%
(2/2)
|
100%
(6/6)
|
1 package vit.khudenko.android.sessiontracker
2
3 /**
4 * A helper function to reduce code footprint when specifying [`ISessionStateTransitionsSupplier`][ISessionStateTransitionsSupplier]
5 * for [`SessionTracker`][SessionTracker].
6 *
7 * @param transitions one or more instances of [`Pair`][Pair]<[`Event`][Event], [`List`][List]<[`State`][State]>> each corresponding
8 * to a [`Transition`][Transition].
9 * @return [`ISessionStateTransitionsSupplier`][ISessionStateTransitionsSupplier] instance
10 *
11 * @see [Transition]
12 *
13 * @param [Event] event parameter of enum type.
14 * @param [State] state parameter of enum type.
15 */
16 fun <Event : Enum<Event>, State : Enum<State>> sessionStateTransitionsSupplier(
17 vararg transitions: Pair<Event, List<State>>
18 ): ISessionStateTransitionsSupplier<Event, State> {
19 return transitions
20 .map { (event, statePath) ->
21 Transition(event, statePath.toList())
22 }
23 .let { transitionList ->
24 ISessionStateTransitionsSupplier { transitionList }
25 }
26 }
27