package Ġcom . ny times . android . external . store 3 . middleware . mos hi Ċ Ċ import Ġcom . ny times . android . external . store 3 . base . Parser Ċ import Ġcom . ny times . android . external . store 3 . util . Parser Exception Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . reflect . Type Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠM oshi String Parser < Parsed > Ġ@ Inject Ċ constructor ( mos hi : ĠM oshi , Ġtype : ĠType ) Ġ: ĠParser < String , ĠParsed > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġjson Adapter : ĠJson Adapter < Parsed > Ġ= Ġm oshi . adapter ( type ) ĊĊĠĠĠ Ġ@ Throws ( Parser Exception :: class ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġapply ( s : ĠString ): ĠParsed Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson Adapter . fromJson ( s ) !! ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠParser Exception ( e ?. message Ġ?: Ġ"", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ