package Ġcom . push er . chat kit . util Ċ Ċ import Ġcom . google . gson . Field Naming Policy Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . Json Element Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . push er . util . Result Ċ import Ġcom . push er . util . as Failure Ċ import Ġcom . push er . util . as Success Ċ import Ġelements . Error Ċ import Ġelements . Errors Ċ Ċ private Ġval ĠG SON Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠ Ġ. setField Naming Policy ( Field Naming Policy . LOWER _ CASE _ WITH _ UNDER SCO RES ) ĊĠĠĠĠĠĠĠ Ġ. serialize Null s () ĊĠĠĠĠĠĠĠ Ġ. create () Ċ Ċ internal Ġinline Ġfun Ġ< re ified ĠA > Ġtype Token () Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Token < A >() Ġ{} . type Ċ Ċ internal Ġinline Ġfun Ġ< re ified ĠA > ĠJson Element . parse As (): ĠResult < A , ĠError > Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Parse Ġ{ ĠG SON . fromJson < A >( this , Ġtype Token < A >()) Ġ} Ċ Ċ internal Ġinline Ġfun Ġ< re ified ĠA > ĠString . parse As (): ĠResult < A , ĠError > Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Parse Ġ{ ĠG SON . fromJson < A >( this , Ġtype Token < A >()) Ġ} Ċ Ċ internal Ġfun Ġ< A > ĠA . toJson (): ĠResult < String , ĠError > Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Parse Ġ{ ĠG SON . toJson ( this ) Ġ} Ċ Ċ private Ġfun Ġ< A > Ġsafe Parse ( block : Ġ() Ġ-> ĠA ): ĠResult < A , ĠError > Ġ= ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock (). as Success () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠErrors . other ( e ). as Failure () ĊĠĠĠĠĠĠĠ Ġ} Ċ