aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs
diff options
context:
space:
mode:
Diffstat (limited to 'scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs')
-rw-r--r--scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs b/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs
new file mode 100644
index 0000000..6a34cbc
--- /dev/null
+++ b/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs
@@ -0,0 +1,27 @@
1module Text.Edifact.Scaffolder.Segments.Types where
2
3import Text.Edifact.Scaffolder.Commons
4
5data Dependency = Dependency { dependencyPosition :: Position
6 , dependencyElement :: Element
7 } deriving Show
8
9data Element = Composite CompositeCode Text Presence
10 | Simple SimpleCode Text Presence SimpleType SimpleLength
11 deriving (Show, Eq, Ord)
12
13data SimpleType = Alphanumeric | Alphabetic | Numeric deriving (Show, Eq, Ord)
14
15data SimpleLength = Exactly Text | UpTo Text deriving (Show, Eq, Ord)
16
17getCode :: Element -> String
18getCode (Simple (SimpleCode c) _ _ _ _) = c
19getCode (Composite (CompositeCode c) _ _) = c
20
21getSimple :: Element -> Maybe SimpleCode
22getSimple (Simple c _ _ _ _) = Just c
23getSimple _ = Nothing
24
25getComposite :: Element -> Maybe CompositeCode
26getComposite (Composite c _ _) = Just c
27getComposite _ = Nothing