/
ResultType.purs
52 lines (41 loc) · 1.9 KB
/
ResultType.purs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
module Web.DOM.Document.XPath.ResultType where
import Prelude
import Data.Maybe (Maybe(..))
newtype ResultType = ResultType Int
instance showResultType :: Show ResultType where
show (ResultType val) = "(ResultType " <> show val <> ")"
derive instance eqResultType :: Eq ResultType
foreign import any_type :: ResultType
foreign import number_type :: ResultType
foreign import string_type :: ResultType
foreign import boolean_type :: ResultType
foreign import unordered_node_iterator_type :: ResultType
foreign import ordered_node_iterator_type :: ResultType
foreign import unordered_node_snapshot_type :: ResultType
foreign import ordered_node_snapshot_type :: ResultType
foreign import any_unordered_node_type :: ResultType
foreign import first_ordered_node_type :: ResultType
data SnapshotType
= UnorderedSnapshotType
| OrderedSnapshotType
-- | Map from restricted type `SnapshotType` to `ResultType` values.
snap2ResType :: SnapshotType -> ResultType
snap2ResType UnorderedSnapshotType = unordered_node_snapshot_type
snap2ResType OrderedSnapshotType = ordered_node_snapshot_type
-- | Inverse of `snap2ResType`.
res2SnapType :: ResultType -> Maybe SnapshotType
res2SnapType r | r == unordered_node_snapshot_type = Just UnorderedSnapshotType
res2SnapType r | r == ordered_node_snapshot_type = Just OrderedSnapshotType
res2SnapType _ = Nothing
data IteratorType
= UnorderedIteratorType
| OrderedIteratorType
-- | Map from restricted type `IteratorType` to `ResultType` values.
iter2ResType :: IteratorType -> ResultType
iter2ResType UnorderedIteratorType = unordered_node_iterator_type
iter2ResType OrderedIteratorType = ordered_node_iterator_type
-- | Inverse of `iter2ResType`.
res2IterType :: ResultType -> Maybe IteratorType
res2IterType r | r == unordered_node_iterator_type = Just UnorderedIteratorType
res2IterType r | r == ordered_node_iterator_type = Just OrderedIteratorType
res2IterType _ = Nothing