Maintainer | Toshio Ito <[email protected]> |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Data.Greskell.PMap
Synopsis
- data PMap (c :: Type -> Type) v
- lookup :: forall k (c :: Type -> Type) v. (PMapKey k, NonEmptyLike c) => k -> PMap c v -> Maybe v
- lookupM :: forall k (c :: Type -> Type) m v. (PMapKey k, NonEmptyLike c, MonadThrow m) => k -> PMap c v -> m v
- lookupAs :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException a
- lookupAs' :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ Maybe a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException (Maybe a)
- lookupAsM :: forall k (c :: Type -> Type) a m. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a, MonadThrow m) => k -> PMap c GValue -> m a
- lookupList :: forall k (c :: Type -> Type) v. (PMapKey k, NonEmptyLike c) => k -> PMap c v -> [v]
- lookupListAs :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException (NonEmpty a)
- lookupListAs' :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ Maybe a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException [Maybe a]
- pMapInsert :: forall (c :: Type -> Type) v. NonEmptyLike c => Text -> v -> PMap c v -> PMap c v
- pMapDelete :: forall (c :: Type -> Type) v. Text -> PMap c v -> PMap c v
- pMapLookup :: forall (c :: Type -> Type) v. NonEmptyLike c => Text -> PMap c v -> [v]
- pMapToList :: forall (c :: Type -> Type) v. Foldable c => PMap c v -> [(Text, v)]
- pMapFromList :: forall (c :: Type -> Type) v. NonEmptyLike c => [(Text, v)] -> PMap c v
- type Single = First
- data Multi a
- class PMapKey k where
- data PMapLookupException
- pMapDecribeError :: PMapLookupException -> String
- pMapToThrow :: MonadThrow m => Either PMapLookupException a -> m a
- pMapToFail :: MonadFail m => Either PMapLookupException a -> m a
PMap
data PMap (c :: Type -> Type) v Source #
A property map, which has text keys and v
values. c
specifies
the cardinality of each item, and should be an instance of
NonEmptyLike
.
You can look up values from PMap
using key types of PMapKey
class.
Since: 1.0.0.0
Instances
Foldable c => Foldable (PMap c) Source # | |||||
Defined in Data.Greskell.PMap Methods fold :: Monoid m => PMap c m -> m # foldMap :: Monoid m => (a -> m) -> PMap c a -> m # foldMap' :: Monoid m => (a -> m) -> PMap c a -> m # foldr :: (a -> b -> b) -> b -> PMap c a -> b # foldr' :: (a -> b -> b) -> b -> PMap c a -> b # foldl :: (b -> a -> b) -> b -> PMap c a -> b # foldl' :: (b -> a -> b) -> b -> PMap c a -> b # foldr1 :: (a -> a -> a) -> PMap c a -> a # foldl1 :: (a -> a -> a) -> PMap c a -> a # elem :: Eq a => a -> PMap c a -> Bool # maximum :: Ord a => PMap c a -> a # minimum :: Ord a => PMap c a -> a # | |||||
Traversable c => Traversable (PMap c) Source # | |||||
Functor c => Functor (PMap c) Source # | |||||
NonEmptyLike c => Monoid (PMap c v) Source # | |||||
NonEmptyLike c => Semigroup (PMap c v) Source # | Make a union of the two | ||||
Show (c v) => Show (PMap c v) Source # | |||||
Eq (c v) => Eq (PMap c v) Source # | |||||
AsIterator (PMap c v) Source # | |||||
Defined in Data.Greskell.PMap Associated Types
| |||||
FromGraphSON (c v) => FromGraphSON (PMap c v) Source # | |||||
Defined in Data.Greskell.PMap Methods parseGraphSON :: GValue -> Parser (PMap c v) # | |||||
GraphSONTyped (PMap c v) Source # | |||||
Defined in Data.Greskell.PMap Methods gsonTypeFor :: PMap c v -> Text # | |||||
type IteratorItem (PMap c v) Source # | |||||
Defined in Data.Greskell.PMap |
Single lookup
lookup :: forall k (c :: Type -> Type) v. (PMapKey k, NonEmptyLike c) => k -> PMap c v -> Maybe v Source #
Lookup the first value for the key from PMap
.
lookupM :: forall k (c :: Type -> Type) m v. (PMapKey k, NonEmptyLike c, MonadThrow m) => k -> PMap c v -> m v Source #
MonadThrow
version of lookup
. If there is no value for the
key, it throws PMapNoSuchKey
.
lookupAs :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException a Source #
Lookup the value and parse it into a
.
lookupAs' :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ Maybe a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException (Maybe a) Source #
lookupAsM :: forall k (c :: Type -> Type) a m. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a, MonadThrow m) => k -> PMap c GValue -> m a Source #
MonadThrow
version of lookupAs
.
List lookup
lookupList :: forall k (c :: Type -> Type) v. (PMapKey k, NonEmptyLike c) => k -> PMap c v -> [v] Source #
Lookup all items for the key. If there is no item for the key, it returns an empty list.
lookupListAs :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException (NonEmpty a) Source #
Look up the values and parse them into a
.
lookupListAs' :: forall k (c :: Type -> Type) a. (PMapKey k, NonEmptyLike c, PMapValue k ~ Maybe a, FromGraphSON a) => k -> PMap c GValue -> Either PMapLookupException [Maybe a] Source #
Similar to lookupListAs
, but this function accepts null
results.
If the key k
is not found in the map, it returns an empty
list. If the key k
is found and null
s are included in the
values, they are obtained as Nothing
.
Others
pMapInsert :: forall (c :: Type -> Type) v. NonEmptyLike c => Text -> v -> PMap c v -> PMap c v Source #
Insert a key-value pair to PMap
. If it already has some items
for that key, append
method of the NonEmptyLike
type c
determines its behavior.
pMapDelete :: forall (c :: Type -> Type) v. Text -> PMap c v -> PMap c v Source #
Delete a key and all values associated with it.
pMapLookup :: forall (c :: Type -> Type) v. NonEmptyLike c => Text -> PMap c v -> [v] Source #
Lookup all items for the key (low-level function). If there is no item for the key, it returns an empty list.
pMapToList :: forall (c :: Type -> Type) v. Foldable c => PMap c v -> [(Text, v)] Source #
List up all entries.
pMapFromList :: forall (c :: Type -> Type) v. NonEmptyLike c => [(Text, v)] -> PMap c v Source #
Make a PMap
from list of entries.
Cardinality
The single cardinality for PMap
. pMapInsert
method replaces
the old value. <>
on PMap
prefers the items from the left
PMap
. pMapFromList
prefers the first item for each key.
Since: 1.0.0.0
The "one or more" cardinality for PMap
. pMapInsert
method
prepends the new value at the head. <>
on PMap
appends the
right items to the tail of the left items. pMapFromList
preserves
the order of the items for each key.
Since: 1.0.0.0
Instances
Foldable Multi Source # | |
Defined in Data.Greskell.PMap Methods fold :: Monoid m => Multi m -> m # foldMap :: Monoid m => (a -> m) -> Multi a -> m # foldMap' :: Monoid m => (a -> m) -> Multi a -> m # foldr :: (a -> b -> b) -> b -> Multi a -> b # foldr' :: (a -> b -> b) -> b -> Multi a -> b # foldl :: (b -> a -> b) -> b -> Multi a -> b # foldl' :: (b -> a -> b) -> b -> Multi a -> b # foldr1 :: (a -> a -> a) -> Multi a -> a # foldl1 :: (a -> a -> a) -> Multi a -> a # elem :: Eq a => a -> Multi a -> Bool # maximum :: Ord a => Multi a -> a # minimum :: Ord a => Multi a -> a # | |
Traversable Multi Source # | |
Functor Multi Source # | |
NonEmptyLike Multi Source # | |
Semigroup (Multi a) Source # | |
Show a => Show (Multi a) Source # | |
Eq a => Eq (Multi a) Source # | |
Ord a => Ord (Multi a) Source # | |
FromGraphSON a => FromGraphSON (Multi a) Source # | |
Defined in Data.Greskell.PMap Methods parseGraphSON :: GValue -> Parser (Multi a) # |
PMapKey
class PMapKey k where Source #
A typed key for PMap
.
Since: 1.0.0.0
Errors
data PMapLookupException Source #
Constructors
PMapNoSuchKey Text | The |
PMapParseError Text String | Failed to parse the value into the type that the |
Instances
pMapDecribeError :: PMapLookupException -> String Source #
Make a human-readable description on PMapLookupException
.
pMapToThrow :: MonadThrow m => Either PMapLookupException a -> m a Source #
Convert the lookup result into a MonadThrow
. It throws
PMapLookupException
.
pMapToFail :: MonadFail m => Either PMapLookupException a -> m a Source #
Convert the lookup result into a MonadFail
. It fails with the
description returned by pMapDecribeError
.