Refactored CStyle in Header and Source File
This commit is contained in:
+52
-3
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user