Safe Haskell | None |
---|---|
Language | Haskell2010 |
- _Float :: Prism' Value Double
- _String :: Prism' Value Text
- _Doc :: Prism' Value Document
- _Array :: Prism' Value [Value]
- _Bin :: Prism' Value Binary
- _Fun :: Prism' Value Function
- _Uuid :: Prism' Value UUID
- _Md5 :: Prism' Value MD5
- _UserDef :: Prism' Value UserDefined
- _ObjId :: Prism' Value ObjectId
- _Bool :: Prism' Value Bool
- _UTC :: Prism' Value UTCTime
- _Null :: Prism' Value ()
- _RegEx :: Prism' Value Regex
- _JavaScr :: Prism' Value Javascript
- _Sym :: Prism' Value Symbol
- _Int32 :: Prism' Value Int32
- _Int64 :: Prism' Value Int64
- key :: AsDocument t => Label -> Traversal' t Value
- values :: AsValue v => IndexedTraversal' Int v Value
- fields :: AsDocument v => IndexedTraversal' Int v Field
- members :: AsDocument v => Traversal' v Value
- nth :: AsValue v => Int -> Traversal' v Value
- labels :: AsDocument v => Traversal' v Label
- class AsValue t where
- _Value :: Traversal' t Value
- class AsDocument t where
- _Document :: Traversal' t Document
Documentation
key :: AsDocument t => Label -> Traversal' t Value Source
values :: AsValue v => IndexedTraversal' Int v Value Source
An indexed Traversal into Array elements
>>>
Array [String "hey", Float 2.0] ^.. values
["hey", 2.0]
>>>
"Array [Float 2.0,Float 3.0,Float 4.0]" & values . _Float *~ 2.0
"[4.0,6.0,8.0]"
fields :: AsDocument v => IndexedTraversal' Int v Field Source
An indexed Traversal into Document fields
>>>
Array [Doc ["doc1" := Float 3.0], Doc ["doc2" := Bool True]] ^.. values . fields
[ key: 3.0, key2: True ]
members :: AsDocument v => Traversal' v Value Source
A Traversal into Document values
>>>
["key" := Float 3.0, "key2" := Bool True] & members . _Float *~ 2
[ key: 6.0, key2: True ]
nth :: AsValue v => Int -> Traversal' v Value Source
Like ix
, but for Arrays with Int indexes
>>>
"Array [Float 1.0, Float 2.0, Float 3.0]" ^? nth 1
Just 2.0
>>>
"Array [Float 1.0, Float 2.0, Float 3.0]" & nth 1 .~ Float 20.0
"[1.0,20.0,3.0]"
labels :: AsDocument v => Traversal' v Label Source
A Traversal into Document keys
>>>
["key" := Float 3.0, "key2" := Bool True] & labels %~ Data.Text.toUpper
["KEY": 3.0, "KEY2": True]
Nothing
_Value :: Traversal' t Value Source
A traversal for types that contain Value
s
>>>
("key" .= Bool True) ^? _Value
Just True
>>>
Doc ["key" .= Bool True] ^? _Value
Just [ key: True]
class AsDocument t where Source
Nothing
_Document :: Traversal' t Document Source
A traversal for types that contain documents
>>>
["key" .= Bool True] ^? _Document
Just [ key: True]
>>>
Doc ["key" .= Bool True] ^? _Document
Just [ key: True]