aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/Scaffolder/Composites/Implementation.hs
blob: 0f3e939f803252ff3b4c7e7afd7945226270942c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{-# LANGUAGE OverloadedStrings #-}

module Text.Edifact.Scaffolder.Composites.Implementation
  ( -- *
    toImplementation
  ) where

import           Text.Edifact.Scaffolder.Commons
import           Text.Edifact.Scaffolder.Composites.Types

import           Data.List.NonEmpty                       as NE (toList)
import           Formatting

toImplementation :: NonEmpty Dependency -> [Text]
toImplementation = haskellList . fmap callDependency . NE.toList

callDependency :: Dependency -> Text
callDependency (Dependency pos element presence) =
  sformat (quoted fPosition % " .@ " % fPresence % " " % fElement) pos presence element