summaryrefslogtreecommitdiff
path: root/protocols/codegen/Wayland/CodeGen/Utils.hs
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2024-08-14 21:00:55 +0200
committerHannes Schulze <haschu0103@outlook.de>2024-08-14 21:00:55 +0200
commit53c274ad747bfbac34e979bee5f0841f9568c89f (patch)
treee6712c05aba55600534816d5984b7f102c616e7a /protocols/codegen/Wayland/CodeGen/Utils.hs
parentf4f93ad6e9289d499e1f4c6cf7f9581e622f2d26 (diff)
finish codegen
Diffstat (limited to 'protocols/codegen/Wayland/CodeGen/Utils.hs')
-rw-r--r--protocols/codegen/Wayland/CodeGen/Utils.hs13
1 files changed, 7 insertions, 6 deletions
diff --git a/protocols/codegen/Wayland/CodeGen/Utils.hs b/protocols/codegen/Wayland/CodeGen/Utils.hs
index fa04286..9f43ab0 100644
--- a/protocols/codegen/Wayland/CodeGen/Utils.hs
+++ b/protocols/codegen/Wayland/CodeGen/Utils.hs
@@ -66,14 +66,15 @@ resolveInterfaceTypes i = do
mapM_ (\m -> resolveAndAssign (resolveMessageType m) (assignRequestArgs (msgName m))) (ifRequests i)
mapM_ (\e -> resolveAndAssign (resolveEnumType e) (assignEnumName (enumName e))) (ifEnums i)
-resolveMessageType :: MessageDesc -> State TypeInfo ArgumentMode
+resolveMessageType :: MessageDesc -> State TypeInfo ArgumentName
resolveMessageType m = case msgArguments m of
- [] -> pure ArgumentModeNone
- [a] -> pure $ ArgumentModeSingle a
- as -> ArgumentModeRecord as <$> getFreeTypeName (pascalCase (msgName m)) Nothing
+ [] -> pure ArgumentNameNone
+ [a] -> pure $ ArgumentNameSingle a
+ as -> ArgumentNameRecord as <$> getFreeTypeName (pascalCase (msgName m)) Nothing
-resolveEnumType :: EnumDesc -> State TypeInfo String
-resolveEnumType e = getFreeTypeName (pascalCase (enumName e)) $ if enumBitfield e then Just "Flags" else Nothing
+resolveEnumType :: EnumDesc -> State TypeInfo EnumName
+resolveEnumType e = EnumName e <$> name
+ where name = getFreeTypeName (pascalCase (enumName e)) $ if enumBitfield e then Just "Flag" else Nothing
getFreeTypeName :: String -> Maybe String -> State TypeInfo String
getFreeTypeName requested conflictSuffix = attemptRequested