package Ġcom . lu iz corre a . coin converter . core Ċ Ċ import Ġkotlinx . coroutines . flow . Flow Ċ Ċ abstract Ġclass ĠUse Case < Param , ĠSource > Ġ{ ĊĠĠĠ Ġabstract Ġsuspend Ġfun Ġexecute ( param : ĠParam ): ĠFlow < Source > ĊĊĠĠĠ Ġopen Ġsuspend Ġoperator Ġfun Ġinvoke ( param : ĠParam ) Ġ= Ġexecute ( param ) ĊĊĠĠĠ Ġabstract Ġclass ĠNo Param < Source > Ġ: ĠUse Case < None , ĠFlow < Source >>() Ġ{ ĊĠĠĠĠĠĠĠ Ġabstract Ġsuspend Ġfun Ġexecute (): ĠFlow < Source > ĊĊĠĠĠĠĠĠĠ Ġfinal Ġoverride Ġsuspend Ġfun Ġexecute ( param : ĠNone ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĊĠĠĠĠĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke (): ĠFlow < Source > Ġ= Ġexecute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠNo Source < Params > Ġ: ĠUse Case < Params , ĠUnit >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġoperator Ġfun Ġinvoke ( param : ĠParams ) Ġ= Ġexecute ( param ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠNone Ċ } Ċ