avro
avro copied to clipboard
avrogo generates non-idiomatic names
Names produced by avrogo
do not follow idiomatic Go capitalisation/initialisation rules. (e.g. use ID
rather than id
or Id
).
This can be reproduced with the following schema
{
"name": "User",
"type": "record",
"fields": [
{
"name": "userID",
"type": {
"type": "string",
"logicalType": "uuid"
}
}
]
}
avrogo
generates
type User struct {
Userid uuid.UUID `json:"userID"`
}
but an idiomatic representation would be
type User struct {
UserID uuid.UUID `json:"userID"`
}
There are third-party libraries available to achieve this (e.g. github.com/hamba/avro uses github.com/ettle/strcase's PascalCase).
If this were implemented then it would be helpful to allow additional initialisms with command line arguments. For example in my use case I have schemas referring to MW
(megawatts) and would like that initialised too.
I'm happy to work on this but I want to check if the change would be accepted before starting.