diff options
Diffstat (limited to 'protocols/codegen/Wayland/CodeGen/Utils.hs')
| -rw-r--r-- | protocols/codegen/Wayland/CodeGen/Utils.hs | 13 |
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 |
