Немного подправил either
This commit is contained in:
parent
aaefef570b
commit
7309f6be46
@ -13,7 +13,7 @@ import java.lang.reflect.ParameterizedType
|
||||
|
||||
/**
|
||||
* При объявлении [Either] для (де)сериализации *НЕОБХОДИМО* объявить
|
||||
* такое *левое* свойство, которое имеет [TypeAdapter] который не "засоряет" JsonReader
|
||||
* такое *левое* свойство, которое имеет [TypeAdapter] который не "засоряет" [JsonReader]
|
||||
*/
|
||||
object EitherTypeAdapter : TypeAdapterFactory {
|
||||
override fun <T : Any?> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
|
||||
|
@ -20,6 +20,13 @@ data class Either<L, R>(val left: L?, val right: R?) {
|
||||
right.invoke(this.right!!)
|
||||
}
|
||||
|
||||
inline fun <T> reduce(left: (L) -> T, right: (R) -> T): T {
|
||||
return if (this.left != null)
|
||||
left.invoke(this.left)
|
||||
else
|
||||
right.invoke(this.right!!)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun <L, R> left(value: L): Either<L, R> {
|
||||
|
Loading…
Reference in New Issue
Block a user