Skip to content

Commit 672ead6

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 3dcb444 + 6aec035 commit 672ead6

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

src/main/java/com/lightningkite/kotlin/lambda/CooldownLambda.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.lightningkite.kotlin.lambda
22

33
/**
4+
*
45
* Created by joseph on 9/2/16.
56
*/
67
class CooldownLambda(val time: Long, val inner: () -> Unit) : () -> Unit {

src/main/java/com/lightningkite/kotlin/lambda/Lambda.ext.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.lightningkite.kotlin.lambda
22

33
/**
4+
*
45
* Created by joseph on 11/14/16.
56
*/
67
@Deprecated("Use 'transform' instead.", ReplaceWith("transform(mapper)"))
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.lightningkite.kotlin.lambda
2+
3+
/**
4+
*
5+
* Created by joseph on 9/27/17.
6+
*/
7+
8+
inline fun <A> MutableCollection<(A) -> Unit>.addInvokeOnce(crossinline lambda: (A) -> Unit) {
9+
add(object : (A) -> Unit {
10+
override fun invoke(a: A) {
11+
lambda.invoke(a)
12+
remove(this)
13+
}
14+
})
15+
}
16+
17+
inline fun <A, B> MutableCollection<(A, B) -> Unit>.addInvokeOnce(crossinline lambda: (A, B) -> Unit) {
18+
add(object : (A, B) -> Unit {
19+
override fun invoke(a: A, b: B) {
20+
lambda.invoke(a, b)
21+
remove(this)
22+
}
23+
})
24+
}
25+
26+
inline fun <A, B, C> MutableCollection<(A, B, C) -> Unit>.addInvokeOnce(crossinline lambda: (A, B, C) -> Unit) {
27+
add(object : (A, B, C) -> Unit {
28+
override fun invoke(a: A, b: B, c: C) {
29+
lambda.invoke(a, b, c)
30+
remove(this)
31+
}
32+
})
33+
}
34+
35+
inline fun <A> MutableCollection<(A) -> Unit>.addInvokeOnce(crossinline filter: (A) -> Boolean, crossinline lambda: (A) -> Unit) {
36+
add(object : (A) -> Unit {
37+
override fun invoke(a: A) {
38+
if (filter.invoke(a)) {
39+
lambda.invoke(a)
40+
remove(this)
41+
}
42+
}
43+
})
44+
}
45+
46+
inline fun <A, B> MutableCollection<(A, B) -> Unit>.addInvokeOnce(crossinline filter: (A, B) -> Boolean, crossinline lambda: (A, B) -> Unit) {
47+
add(object : (A, B) -> Unit {
48+
override fun invoke(a: A, b: B) {
49+
if (filter.invoke(a, b)) {
50+
lambda.invoke(a, b)
51+
remove(this)
52+
}
53+
}
54+
})
55+
}
56+
57+
inline fun <A, B, C> MutableCollection<(A, B, C) -> Unit>.addInvokeOnce(crossinline filter: (A, B, C) -> Boolean, crossinline lambda: (A, B, C) -> Unit) {
58+
add(object : (A, B, C) -> Unit {
59+
override fun invoke(a: A, b: B, c: C) {
60+
if (filter.invoke(a, b, c)) {
61+
lambda.invoke(a, b, c)
62+
remove(this)
63+
}
64+
}
65+
})
66+
}

0 commit comments

Comments
 (0)