package Ġes . plex us . android . plex us ch uck . domain layer . feature . main Ċ Ċ import Ġarrow . core . Either Ċ import Ġes . plex us . android . plex us ch uck . domain layer . Domain layer Contract Ċ import Ġes . plex us . android . plex us ch uck . domain layer . base . Base Domain Layer Bridge Ċ import Ġes . plex us . android . plex us ch uck . domain layer . domain . Failure Bo Ċ import Ġes . plex us . android . plex us ch uck . domain layer . domain . Jo ke Bo Wrapper Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ const Ġval ĠMAIN _ DOMAIN _ BR ID GE _ TAG Ġ= Ġ" main Domain Layer Bridge " Ċ Ċ /** Ċ Ġ* ĠAn Ġentity Ġwhich Ġg athers Ġall Ġthe Ġavailable Ġfunctionality Ġrelated Ġto Ġthe Ġ' main ' Ġfeature Ċ Ġ*/ Ċ interface ĠMain Domain Layer Bridge < out ĠS > Ġ: ĠBase Domain Layer Bridge Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġfunction Ġwhich Ġallows Ġto Ġquery Ġand Ġhandle Ġjo ke Ġdata ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ scope ] ĠThe Ġ[ Coroutine Scope ] Ġassociated , Ġwhich Ġcan Ġbe Ġused Ġto Ġhandle Ġan Ġen closing ĠKotlin ĠCor outine ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ on Result ] ĠA Ġcallback Ġto Ġsend Ġback Ġany Ġdata Ġof Ġinterest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfetch J okes ( scope : ĠCor outine Scope , Ġon Result : Ġ( Either < Failure Bo , ĠS >) Ġ-> ĠUnit Ġ= Ġ{}) Ċ Ċ } Ċ Ċ internal Ġclass ĠMain Domain Layer Bridge Impl ( ĊĠĠĠ Ġprivate Ġval Ġfetch J okes Uc : ĠDomain layer Contract . Presentation layer . UseCase < Any , ĠJo ke Bo Wrapper > Ċ ) Ġ: ĠMain Domain Layer Bridge < Jo ke Bo Wrapper > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfetch J okes ( ĊĠĠĠĠĠĠĠ Ġscope : ĠCor outine Scope , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( Either < Failure Bo , ĠJo ke Bo Wrapper >) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfetch J okes Uc . invoke ( scope Ġ= Ġscope , Ġon Result Ġ= Ġon Result ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ