package Ġcom . mg die z . coroutines workshop . domain . use case Ċ Ċ import Ġcom . mg die z . coroutines workshop . domain . Base UseCase Ċ import Ġcom . mg die z . coroutines workshop . domain . Either Ċ import Ġcom . mg die z . coroutines workshop . domain . Failure Ċ import Ġcom . mg die z . coroutines workshop . domain . model . Character Bo Ċ import Ġcom . mg die z . coroutines workshop . domain . repository . Characters Repository Ċ Ċ class ĠGet Characters ( ĊĠĠĠ Ġprivate Ġval Ġcharacters Repository : ĠChar acters Repository Ċ ) Ġ: ĠBase UseCase < List < Character Bo >, ĠGet Characters . Params >() Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrun ( params : ĠParams ): ĠEither < Failure , ĠList < Character Bo >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharacters Ġ= Ġcharacters Repository . get Characters ( params . page ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( characters ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exp : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( Failure . Error ( exp )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠParams ( val Ġpage : ĠInt ) Ċ } Ċ