
commonMain.io.nacular.doodle.utils.Encoder.kt Maven / Gradle / Ivy
package io.nacular.doodle.utils
import kotlin.Result.Companion.failure
import kotlin.Result.Companion.success
public interface Encoder {
public fun encode(a: A): Result
public fun decode(b: B): Result
}
public class PassThroughEncoder: Encoder {
public override fun encode(a: T): Result = success(a)
public override fun decode(b: T): Result = success(b)
}
public abstract class ToStringEncoder: Encoder {
public override fun encode(a: T): Result = success(a.toString())
}
public object ToStringIntEncoder: ToStringEncoder() {
public override fun decode(b: String): Result = b.toIntOrNull()?.let { success(it) } ?: failure(IllegalArgumentException("Cannot parse: $b"))
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy