DA
Size: a a a
DA
K
e
interface ByteArrayMarshaller<T> {
fun encode(value: T): ByteArray
fun decode(value: ByteArray): T
fun <V>bimap(tv: (T) -> V, vt: (V) -> T): ByteArrayMarshaller<V> = object : ByteArrayMarshaller<V> {
override fun encode(value: V): ByteArray {
return encode(vt(value))
}
override fun decode(value: ByteArray): V {
return tv(decode(value))
}
}
}
decode
. Я могу сделать временную переменную конечно, но может есть идеоматический путь?VP
interface ByteArrayMarshaller<T> {
fun encode(value: T): ByteArray
fun decode(value: ByteArray): T
fun <V>bimap(tv: (T) -> V, vt: (V) -> T): ByteArrayMarshaller<V> = object : ByteArrayMarshaller<V> {
override fun encode(value: V): ByteArray {
return encode(vt(value))
}
override fun decode(value: ByteArray): V {
return tv(decode(value))
}
}
}
decode
. Я могу сделать временную переменную конечно, но может есть идеоматический путь?this@ByteArrayMarshaller
или что-то близкое к этомуe
this@ByteArrayMarshaller
или что-то близкое к этомуVM
priority
?fun getTargetsByPriority() {
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
targetList.clear()
dataSnapshot.children
.mapNotNull { it.getValue(Goal::class.java) }
.sortedBy { it.priority }
.toCollection(targetList)
contract.updateViewContent()
}
override fun onCancelled(databaseError: DatabaseError) {
Log.d("some", "Error trying to get targets for ${databaseError.message}")
}
}
targetsRef?.addListenerForSingleValueEvent(valueEventListener)
}
VM
LS
VP
КР
SB
LS
SB
IK
RI
BV
RI
М
LS