package Ġcom . bad oo . reak t ive . comp letable Ċ Ċ import Ġcom . bad oo . reak t ive . base . Emitter Ċ import Ġcom . bad oo . reak t ive . utils . serializer . serializer Ċ Ċ fun ĠComp letable Emitter . serialize (): ĠComp letable Emitter Ġ= ĠSerialized Comp letable Emitter ( this ) Ċ Ċ private Ġclass ĠSerialized Comp letable Emitter ( ĊĠĠĠ Ġprivate Ġval Ġdelegate : ĠComp letable Emitter Ċ ) Ġ: ĠComp letable Emitter , ĠEmit ter Ġby Ġdelegate Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġserializer Ġ= ĊĠĠĠĠĠĠĠ Ġserializer < Event > Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . On Complete Ġ-> Ġdelegate . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent . OnError Ġ-> Ġdelegate . onError ( event . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠ Ġserializer . accept ( Event . On Complete ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġserializer . accept ( Event . OnError ( error )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsealed Ġclass ĠEvent Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠOn Complete Ġ: ĠEvent () ĊĠĠĠĠĠĠĠ Ġclass ĠOn Error ( val Ġerror : ĠThrowable ) Ġ: ĠEvent () ĊĠĠĠ Ġ} Ċ } Ċ