package ru.dbotthepony.mc.otm.data

import com.mojang.datafixers.util.Pair
import com.mojang.serialization.Codec
import com.mojang.serialization.DataResult
import com.mojang.serialization.DynamicOps

class SingletonCodec<V : Any>(val value: V) : Codec<V> {
	override fun <T : Any> encode(input: V, ops: DynamicOps<T>, prefix: T): DataResult<T> {
		return DataResult.success(ops.empty())
	}

	override fun <T : Any> decode(ops: DynamicOps<T>, input: T? /* Так то, оно должно быть null */): DataResult<Pair<V, T>> {
		return DataResult.success(Pair(value, ops.empty()))
	}
}
