Revision dee434c2 src/Ganeti/THH/PyRPC.hs
b/src/Ganeti/THH/PyRPC.hs | ||
---|---|---|
98 | 98 |
varName idx (AppT ListT t) = listOf idx t |
99 | 99 |
varName idx (AppT (ConT n) t) |
100 | 100 |
| n == ''[] = listOf idx t |
101 |
varName idx (AppT (AppT (TupleT 2) t) t') |
|
102 |
= pairOf idx t t' |
|
103 |
varName idx (AppT (AppT (ConT n) t) t') |
|
104 |
| n == ''(,) = pairOf idx t t' |
|
101 | 105 |
varName idx t = do |
102 | 106 |
report False $ "Don't know how to make a Python variable name from " |
103 | 107 |
++ show t ++ "; using a numbered one." |
... | ... | |
108 | 112 |
listOf :: Int -> Type -> Q Doc |
109 | 113 |
listOf idx t = (<> text "List") <$> varName idx t |
110 | 114 |
|
115 |
-- | Create a name for a method argument, knowing that its a pair of |
|
116 |
-- the given types. |
|
117 |
pairOf :: Int -> Type -> Type -> Q Doc |
|
118 |
pairOf idx t t' = do |
|
119 |
tn <- varName idx t |
|
120 |
tn' <- varName idx t' |
|
121 |
return $ tn <> text "_" <> tn' <> text "_Pair" |
|
122 |
|
|
111 | 123 |
lowerFirstNameQ :: Name -> Q Doc |
112 | 124 |
lowerFirstNameQ = return . text . lowerFirst . nameBase |
113 | 125 |
|
Also available in: Unified diff