Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.esotericsoftware.Kryo
- import com.estoericsoftware.serialize.SimpleSerializer
- import java.nio.ByteBuffer
- object OptionSerializers {
- def register(kryo: Kryo) {
- kryo.register(classOf[None$], new NoneSerializer)
- kryo.register(classOf[Some[_]], new SomeSerializer(kryo))
- }
- }
- class NoneSerializer extends SimpleSerializer[None.type] {
- def read(buffer: ByteBuffer) = None
- def write(buffer: ByteBuffer, o: None.type) = ()
- }
- class SomeSerializer(kryo: Kryo) extends SimpleSerializer[Some[_]] {
- def read(buffer: ByteBuffer) = Some(kryo.readClassAndObject(buffer))
- def write(buffer: ByteBuffer, o: Some[_]) = kryo.writeClassAndObject(buffer, o.get)
- }
Add Comment
Please, Sign In to add comment