Немного подправил either

This commit is contained in:
DBotThePony 2023-02-05 20:32:55 +07:00
parent aaefef570b
commit 7309f6be46
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 8 additions and 1 deletions

View File

@ -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>? {

View File

@ -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> {