packages feed

typed-wire 0.3.1.0 → 0.3.1.1

raw patch · 2 files changed

+13/−4 lines, 2 files

Files

src/TW/CodeGen/Elm.hs view
@@ -72,13 +72,14 @@     , "   }"     , ""     , "jenc" <> unTypeName (sd_name sd) <> " : " <> encTy <> fullType <> " -> " <> jsonEnc "Value"-    , "jenc" <> unTypeName (sd_name sd) <> " = " <> jsonEnc "object" <> " << " <> "jencTuples" <> unTypeName (sd_name sd)+    , "jenc" <> unTypeName (sd_name sd) <> " " <> encArgs <> " = "+        <> jsonEnc "object" <> " << " <> "jencTuples" <> unTypeName (sd_name sd) <> " " <> encArgs     , "jencTuples" <> unTypeName (sd_name sd) <> " : " <> encTy <> fullType <> " -> List (String, " <> jsonEnc "Value" <> ")"     , "jencTuples" <> unTypeName (sd_name sd) <> " " <> encArgs <> " x ="     , "    [ " <> T.intercalate "\n    , " (map makeToJsonFld $ sd_fields sd)     , "    ]"-    , "jdec" <> unTypeName (sd_name sd) <> " : " <> jsonDec "Decoder" <> " (" <> fullType <> ")"-    , "jdec" <> unTypeName (sd_name sd) <> " ="+    , "jdec" <> unTypeName (sd_name sd) <> " : " <> decTy <> jsonDec "Decoder" <> " (" <> fullType <> ")"+    , "jdec" <> unTypeName (sd_name sd) <> " " <> decArgs <> " ="     , "    " <> T.intercalate "\n    " (map makeFromJsonFld $ sd_fields sd)     , "    " <> jsonDec "succeed" <> " (" <> unTypeName (sd_name sd) <> " " <> funArgs <> ")"     ]@@ -91,6 +92,14 @@                         "(" <> v <> " -> " <> jsonEnc "Value" <> ")"                 in ( T.intercalate " -> " (map mkEncTy $ sd_args sd) <> " -> "                    , T.intercalate " " (map varEnc $ sd_args sd)+                   )+      (decTy, decArgs) =+          case sd_args sd of+            [] -> ("", "")+            _ ->+                let mkDecTy (TypeVar v) = "(JD.Decoder " <> v <> ")"+                in ( T.intercalate " -> " (map mkDecTy $ sd_args sd) <> " -> "+                   , T.intercalate " " (map varDec $ sd_args sd)                    )       jArg fld = "j_" <> (unFieldName $ sf_name fld)       makeFromJsonFld fld =
typed-wire.cabal view
@@ -1,5 +1,5 @@ name:                typed-wire-version:             0.3.1.0+version:             0.3.1.1 synopsis:            Language-independent type-safe communication description:         Please see README.md homepage:            http://github.com/typed-wire/typed-wire#readme