Guest User

Untitled

a guest
Jan 22nd, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. import com.esotericsoftware.Kryo
  2. import com.estoericsoftware.serialize.SimpleSerializer
  3. import java.nio.ByteBuffer
  4.  
  5. object OptionSerializers {
  6. def register(kryo: Kryo) {
  7. kryo.register(classOf[None$], new NoneSerializer)
  8. kryo.register(classOf[Some[_]], new SomeSerializer(kryo))
  9. }
  10. }
  11.  
  12. class NoneSerializer extends SimpleSerializer[None.type] {
  13. def read(buffer: ByteBuffer) = None
  14. def write(buffer: ByteBuffer, o: None.type) = ()
  15. }
  16.  
  17. class SomeSerializer(kryo: Kryo) extends SimpleSerializer[Some[_]] {
  18. def read(buffer: ByteBuffer) = Some(kryo.readClassAndObject(buffer))
  19. def write(buffer: ByteBuffer, o: Some[_]) = kryo.writeClassAndObject(buffer, o.get)
  20. }
Add Comment
Please, Sign In to add comment