Refactored CStyle in Header and Source File

This commit is contained in:
2025-04-26 17:33:06 +02:00
parent d1f91e547b
commit 09e2afe329
4 changed files with 72 additions and 11 deletions
+52 -3
View File
@@ -69,16 +69,22 @@ type CStyleData struct {
MessagesESPtoPC []ProtoMessage
}
func CreateCStyle(proto *Proto) (string, error) {
var tmpl *template.Template
func InitTemplates() {
funcs := template.FuncMap{
"snake": toSnakeCase,
"isLast": isLast,
}
tmpl, err := template.New("all").Funcs(funcs).ParseGlob("templates/*.tmpl")
Ntmpl, err := template.New("all").Funcs(funcs).ParseGlob("templates/*.tmpl")
if err != nil {
log.Fatalf("failed to parse templates: %v", err)
}
tmpl = Ntmpl
}
func CreateCStyleHeader(proto *Proto) (string, error) {
payloads := []PayloadStruct{}
@@ -113,7 +119,50 @@ func CreateCStyle(proto *Proto) (string, error) {
}
var buf bytes.Buffer
err = tmpl.ExecuteTemplate(&buf, "cpart", data)
err := tmpl.ExecuteTemplate(&buf, "cpartHeader", data)
if err != nil {
log.Printf("Error Rendering template: %v", err)
}
return buf.String(), nil
}
func CreateCStyleSource(proto *Proto) (string, error) {
payloads := []PayloadStruct{}
for _, payload := range proto.PC_TO_ESP {
tmp := PayloadStruct{
Name: payload.Name,
Entries: payload.Payload,
}
payloads = append(payloads, tmp)
}
for _, payload := range proto.ESP_TO_PC {
tmp := PayloadStruct{
Name: payload.Name,
Entries: payload.Payload,
}
payloads = append(payloads, tmp)
}
var data = CStyleData{
CenumPCTOESP: Cenum{
EnumName: "PC_TO_ESP_MESSAGE_IDS",
Entries: proto.PC_TO_ESP,
},
CenumESPTOPC: Cenum{
EnumName: "ESP_TO_PC_MESSAGE_IDS",
Entries: proto.ESP_TO_PC,
},
PayloadStructs: payloads,
MessagesPCtoESP: proto.PC_TO_ESP,
MessagesESPtoPC: proto.ESP_TO_PC,
}
var buf bytes.Buffer
err := tmpl.ExecuteTemplate(&buf, "cpartSource", data)
if err != nil {
log.Printf("Error Rendering template: %v", err)
}