Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ganeti.Utils.MultiMap
Description
Implements multi-maps - maps that map keys to sets of values
This module uses the standard naming convention as other collection-like libraries and is meant to be imported qualified.
Synopsis
- data MultiMap k v
- multiMap :: (Ord k, Ord v) => Map k (Set v) -> MultiMap k v
- multiMapL :: (Ord k, Ord v) => k -> Lens' (MultiMap k v) (Set v)
- multiMapValueL :: (Ord k, Ord v) => k -> v -> Lens' (MultiMap k v) Bool
- null :: MultiMap k v -> Bool
- findValue :: (Ord k, Ord v) => v -> MultiMap k v -> Maybe k
- elem :: (Ord k, Ord v) => v -> MultiMap k v -> Bool
- lookup :: (Ord k, Ord v) => k -> MultiMap k v -> Set v
- member :: (Ord k, Ord v) => k -> MultiMap k v -> Bool
- insert :: (Ord k, Ord v) => k -> v -> MultiMap k v -> MultiMap k v
- fromList :: (Ord k, Ord v) => [(k, v)] -> MultiMap k v
- delete :: (Ord k, Ord v) => k -> v -> MultiMap k v -> MultiMap k v
- deleteAll :: (Ord k, Ord v) => k -> MultiMap k v -> MultiMap k v
- values :: (Ord k, Ord v) => MultiMap k v -> Set v
Documentation
A multi-map that contains multiple values for a single key. It doesn't distinguish non-existent keys and keys with the empty set as the value.
Instances
Foldable (MultiMap k) # | |
Defined in Ganeti.Utils.MultiMap Methods fold :: Monoid m => MultiMap k m -> m foldMap :: Monoid m => (a -> m) -> MultiMap k a -> m foldMap' :: Monoid m => (a -> m) -> MultiMap k a -> m foldr :: (a -> b -> b) -> b -> MultiMap k a -> b foldr' :: (a -> b -> b) -> b -> MultiMap k a -> b foldl :: (b -> a -> b) -> b -> MultiMap k a -> b foldl' :: (b -> a -> b) -> b -> MultiMap k a -> b foldr1 :: (a -> a -> a) -> MultiMap k a -> a foldl1 :: (a -> a -> a) -> MultiMap k a -> a elem :: Eq a => a -> MultiMap k a -> Bool maximum :: Ord a => MultiMap k a -> a minimum :: Ord a => MultiMap k a -> a | |
(Ord v, Ord k) => Monoid (MultiMap k v) # | |
(Ord v, Ord k) => Semigroup (MultiMap k v) # | |
(Show k, Show v) => Show (MultiMap k v) # | |
(Eq k, Eq v) => Eq (MultiMap k v) # | |
(Ord k, Ord v) => Ord (MultiMap k v) # | |
Defined in Ganeti.Utils.MultiMap | |
(JSON k, Ord k, JSON v, Ord v) => JSON (MultiMap k v) # | |
multiMap :: (Ord k, Ord v) => Map k (Set v) -> MultiMap k v #
Creates a multi-map from a map of sets.
multiMapL :: (Ord k, Ord v) => k -> Lens' (MultiMap k v) (Set v) #
A Lens
that allows to access a set under a given key in a multi-map.
multiMapValueL :: (Ord k, Ord v) => k -> v -> Lens' (MultiMap k v) Bool #
A Lens
that allows to access a given value/key pair in a multi-map.
It is similar to the At
instance, but uses more convenient Bool
instead of 'Maybe ()' and a pair key/value.
findValue :: (Ord k, Ord v) => v -> MultiMap k v -> Maybe k #
Tries to find a key corresponding to a given value.
elem :: (Ord k, Ord v) => v -> MultiMap k v -> Bool #
Returns True
iff a given value is present in a set of some key.
lookup :: (Ord k, Ord v) => k -> MultiMap k v -> Set v #
Return the set corresponding to a given key.