From 7dd7e96cce9915ad82985a4ee0711d2dc695c610 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Fri, 18 Sep 2020 20:26:20 +0200 Subject: [PATCH] conversion of RingMap to key-value list --- src/Hash2Pub/RingMap.hs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Hash2Pub/RingMap.hs b/src/Hash2Pub/RingMap.hs index a2fe3ae..a083b59 100644 --- a/src/Hash2Pub/RingMap.hs +++ b/src/Hash2Pub/RingMap.hs @@ -201,6 +201,13 @@ deleteRMapEntry nid = RingMap . Map.update modifier nid . getRingMap rMapToList :: (Bounded k, Ord k) => RingMap k a -> [a] rMapToList = mapMaybe extractRingEntry . Map.elems . getRingMap +rMapToListWithKeys :: (Bounded k, Ord k) => RingMap k a -> [(k, a)] +rMapToListWithKeys = Map.foldrWithKey (\k v acc -> + maybe acc (\val -> (k, val):acc) $ extractRingEntry v + ) + [] + . getRingMap + rMapFromList :: (Bounded k, Ord k) => [(k, a)] -> RingMap k a rMapFromList = setRMapEntries