From 53c274ad747bfbac34e979bee5f0841f9568c89f Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Wed, 14 Aug 2024 21:00:55 +0200 Subject: finish codegen --- protocols/codegen/Wayland/CodeGen/Utils.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'protocols/codegen/Wayland/CodeGen/Utils.hs') 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 -- cgit v1.3.1