package Ġcom . so y wiz . kor inject Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines .* Ċ Ċ suspend Ġfun Ġ< T > Ġwith Injector ( injector : ĠAsync Injector , Ġblock : Ġsuspend Ġ() Ġ-> ĠT ): ĠT Ġ= ĊĠĠĠ Ġwith Context ( Async Injector Context ( injector )) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ Ċ suspend Ġfun Ġinjector (): ĠAsync Injector Ġ= ĊĠĠĠ Ġcoroutine Context [ Async Injector Context ]?. injector ĊĠĠĠĠĠĠĠ Ġ?: Ġerror (" Async Injector Ġnot Ġin Ġthe Ġcontext , Ġplease Ġcall Ġwith Injector Ġfunction ") Ċ Ċ class ĠAsync Injector Context ( val Ġinjector : ĠAsync Injector ) Ġ: ĠCor outine Context . Element Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠCor outine Context . Key < Async Injector Context > ĊĊĠĠĠ Ġoverride Ġval Ġkey Ġget () Ġ= ĠAsync Injector Context Ċ } Ċ