package Ġdev . in mo . micro _ utils . repos Ċ Ċ import Ġdev . in mo . micro _ utils . pagination .* Ċ import Ġdev . in mo . micro _ utils . pagination . utils . do All With Current Paging Ċ import Ġkotlinx . coroutines . flow . Flow Ċ Ċ interface ĠRead Standard KeyValue Repo < Key , ĠValue > Ġ: ĠRepo Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġget ( k : ĠKey ): ĠValue ? ĊĠĠĠ Ġsuspend Ġfun Ġvalues ( pagination : ĠPagination , Ġreversed : ĠBoolean Ġ= Ġfalse ): ĠPagination Result < Value > ĊĠĠĠ Ġsuspend Ġfun Ġkeys ( pagination : ĠPagination , Ġreversed : ĠBoolean Ġ= Ġfalse ): ĠPagination Result < Key > ĊĠĠĠ Ġsuspend Ġfun Ġkeys ( v : ĠValue , Ġpagination : ĠPagination , Ġreversed : ĠBoolean Ġ= Ġfalse ): ĠPagination Result < Key > ĊĠĠĠ Ġsuspend Ġfun Ġcontains ( key : ĠKey ): ĠBoolean ĊĠĠĠ Ġsuspend Ġfun Ġcount (): ĠLong Ċ } Ċ type alias ĠRead KeyValue Repo < Key , Value > Ġ= ĠRead Standard KeyValue Repo < Key , ĠValue > Ċ Ċ interface ĠWrite Standard KeyValue Repo < Key , ĠValue > Ġ: ĠRepo Ġ{ ĊĠĠĠ Ġval Ġon NewValue : ĠFlow < Pair < Key , ĠValue >> ĊĠĠĠ Ġval Ġon Value Removed : ĠFlow < Key > ĊĊĠĠĠ Ġsuspend Ġfun Ġset ( toSet : ĠMap < Key , ĠValue >) ĊĠĠĠ Ġsuspend Ġfun Ġunset ( to Unset : ĠList < Key >) ĊĠĠĠ Ġsuspend Ġfun Ġunset With Values ( to Unset : ĠList < Value >) Ċ } Ċ type alias ĠWrite KeyValue Repo < Key , Value > Ġ= ĠWrite Standard KeyValue Repo < Key , ĠValue > Ċ Ċ suspend Ġinline Ġfun Ġ< Key , ĠValue > ĠWrite Standard KeyValue Repo < Key , ĠValue >. set ( ĊĠĠĠ Ġvar arg Ġto Set : ĠPair < Key , ĠValue > Ċ ) Ġ= Ġset ( toSet . toMap ()) Ċ Ċ suspend Ġinline Ġfun Ġ< Key , ĠValue > ĠWrite Standard KeyValue Repo < Key , ĠValue >. set ( ĊĠĠĠ Ġk : ĠKey , Ġv : ĠValue Ċ ) Ġ= Ġset ( k Ġto Ġv ) Ċ Ċ suspend Ġinline Ġfun Ġ< Key , ĠValue > ĠWrite Standard KeyValue Repo < Key , ĠValue >. unset ( ĊĠĠĠ Ġvar arg Ġk : ĠKey Ċ ) Ġ= Ġunset ( k . toList ()) Ċ Ċ suspend Ġinline Ġfun Ġ< Key , ĠValue > ĠWrite Standard KeyValue Repo < Key , ĠValue >. unset With Values ( ĊĠĠĠ Ġvar arg Ġv : ĠValue Ċ ) Ġ= Ġunset With Values ( v . toList ()) Ċ Ċ interface ĠStandard KeyValue Repo < Key , ĠValue > Ġ: ĠRead Standard KeyValue Repo < Key , ĠValue >, ĠWrite Standard KeyValue Repo < Key , ĠValue > Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġunset With Values ( to Unset : ĠList < Value >) Ġ= Ġto Unset . forEach Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠ Ġdo All With Current Paging Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeys ( v , Ġit ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunset ( it . results ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ type alias ĠKey Value Repo < Key , Value > Ġ= ĠStandard KeyValue Repo < Key , ĠValue > Ċ