Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.BCP47.Trie
Description
A trie like data structure for defining maps from BCP47
tags to values.
This structure supports collection and lookup of language tagged values. Its semantics are based on those defined in the BCP 47 specification.
Synopsis
- data Trie a
- fromList :: [(BCP47, a)] -> Maybe (Trie a)
- fromNonEmpty :: NonEmpty (BCP47, a) -> Trie a
- singleton :: BCP47 -> a -> Trie a
- lookup :: BCP47 -> Trie a -> Maybe a
- match :: BCP47 -> Trie a -> Maybe a
- elem :: BCP47 -> Trie a -> Bool
- union :: Trie a -> Trie a -> Trie a
- unionWith :: (a -> a -> a) -> Trie a -> Trie a -> Trie a
- mapMaybe :: (a -> Maybe b) -> Trie a -> Maybe (Trie b)
Documentation
A trie mapping BCP47
tags to values
Instances
Functor Trie Source # | |
Foldable Trie Source # | |
Defined in Data.BCP47.Trie.Internal Methods fold :: Monoid m => Trie m -> m # foldMap :: Monoid m => (a -> m) -> Trie a -> m # foldMap' :: Monoid m => (a -> m) -> Trie a -> m # foldr :: (a -> b -> b) -> b -> Trie a -> b # foldr' :: (a -> b -> b) -> b -> Trie a -> b # foldl :: (b -> a -> b) -> b -> Trie a -> b # foldl' :: (b -> a -> b) -> b -> Trie a -> b # foldr1 :: (a -> a -> a) -> Trie a -> a # foldl1 :: (a -> a -> a) -> Trie a -> a # elem :: Eq a => a -> Trie a -> Bool # maximum :: Ord a => Trie a -> a # | |
Traversable Trie Source # | |
Eq a => Eq (Trie a) Source # | |
Ord a => Ord (Trie a) Source # | |
Show a => Show (Trie a) Source # | |
Semigroup a => Semigroup (Trie a) Source # | |
Arbitrary a => Arbitrary (Trie a) Source # | |
fromNonEmpty :: NonEmpty (BCP47, a) -> Trie a Source #
Construct a Trie
from a non empty list of tag/value pairs.
lookup :: BCP47 -> Trie a -> Maybe a Source #
Lookup the most relevant item for a tag
"Lookup is used to select the single language tag that best matches the
language priority list for a given request...For example, if the language
range is 'de-ch', a lookup operation can produce content with the tags de
or 'de-CH' but never content with the tag 'de-CH-1996'."