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