From fef17af2437a8584d0435c94d85b9619b5264219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Tue, 5 Aug 2025 20:18:49 +0200 Subject: Use MonadStorage for storeSetAdd Changelog: API: `Set.storeSetAdd` uses `MonadStorage` instead explicit `Storage` parameter --- src/Erebos/Chatroom.hs | 6 ++---- src/Erebos/Contact.hs | 10 ++++------ src/Erebos/Set.hs | 9 ++++----- 3 files changed, 10 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/Erebos/Chatroom.hs b/src/Erebos/Chatroom.hs index 579d530..f9bf545 100644 --- a/src/Erebos/Chatroom.hs +++ b/src/Erebos/Chatroom.hs @@ -295,8 +295,7 @@ createChatroom rdName rdDescription = do } updateLocalState $ updateSharedState $ \rooms -> do - st <- getStorage - (, cstate) <$> storeSetAdd st cstate rooms + (, cstate) <$> storeSetAdd cstate rooms findAndUpdateChatroomState :: (MonadStorage m, MonadHead LocalState m) @@ -310,8 +309,7 @@ findAndUpdateChatroomState f = do upd <- act if roomStateData orig /= roomStateData upd then do - st <- getStorage - roomSet' <- storeSetAdd st upd roomSet + roomSet' <- storeSetAdd upd roomSet return (roomSet', Just upd) else do return (roomSet, Just upd) diff --git a/src/Erebos/Contact.hs b/src/Erebos/Contact.hs index 88e6c44..b081ddb 100644 --- a/src/Erebos/Contact.hs +++ b/src/Erebos/Contact.hs @@ -83,13 +83,12 @@ contactName c = fromJust $ msum contactSetName :: MonadHead LocalState m => Contact -> Text -> Set Contact -> m (Set Contact) contactSetName contact name set = do - st <- getStorage - cdata <- wrappedStore st ContactData + cdata <- mstore ContactData { cdPrev = toComponents contact , cdIdentity = [] , cdName = Just name } - storeSetAdd st (mergeSorted @Contact [cdata]) set + storeSetAdd (mergeSorted @Contact [cdata]) set type ContactService = PairingService ContactAccepted @@ -166,10 +165,9 @@ contactReject = pairingReject @ContactAccepted Proxy finalizeContact :: MonadHead LocalState m => UnifiedIdentity -> m () finalizeContact identity = updateLocalState_ $ updateSharedState_ $ \contacts -> do - st <- getStorage - cdata <- wrappedStore st ContactData + cdata <- mstore ContactData { cdPrev = [] , cdIdentity = idExtDataF $ finalOwner identity , cdName = Nothing } - storeSetAdd st (mergeSorted @Contact [cdata]) contacts + storeSetAdd (mergeSorted @Contact [cdata]) contacts diff --git a/src/Erebos/Set.hs b/src/Erebos/Set.hs index 270c0ba..7453be4 100644 --- a/src/Erebos/Set.hs +++ b/src/Erebos/Set.hs @@ -10,7 +10,6 @@ module Erebos.Set ( ) where import Control.Arrow -import Control.Monad.IO.Class import Data.Function import Data.List @@ -53,14 +52,14 @@ emptySet = Set [] loadSet :: Mergeable a => Ref -> Set a loadSet = mergeSorted . (:[]) . wrappedLoad -storeSetAdd :: (Mergeable a, MonadIO m) => Storage -> a -> Set a -> m (Set a) -storeSetAdd st x (Set prev) = Set . (:[]) <$> wrappedStore st SetItem +storeSetAdd :: (Mergeable a, MonadStorage m) => a -> Set a -> m (Set a) +storeSetAdd x (Set prev) = Set . (: []) <$> mstore SetItem { siPrev = prev , siItem = toComponents x } -storeSetAddComponent :: (Mergeable a, MonadStorage m, MonadIO m) => Stored (Component a) -> Set a -> m (Set a) -storeSetAddComponent component (Set prev) = Set . (:[]) <$> mstore SetItem +storeSetAddComponent :: (Mergeable a, MonadStorage m) => Stored (Component a) -> Set a -> m (Set a) +storeSetAddComponent component (Set prev) = Set . (: []) <$> mstore SetItem { siPrev = prev , siItem = [ component ] } -- cgit v1.2.3