Skip to content

Commit

Permalink
generate & kmsg: add const nums
Browse files Browse the repository at this point in the history
This makes it clearer what is happening in the source
  • Loading branch information
twmb committed Nov 3, 2020
1 parent 05b289a commit b94b155
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 1 deletion.
31 changes: 30 additions & 1 deletion generate/gen.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package main

import "strconv"
import (
"strconv"
"strings"
)

func (Bool) TypeName() string { return "bool" }
func (Int8) TypeName() string { return "int8" }
Expand Down Expand Up @@ -716,3 +719,29 @@ func (e Enum) WriteStringFunc(l *LineWriter) {
l.Write("}")
l.Write("}")
}

func (e Enum) WriteConsts(l *LineWriter) {
l.Write("const (")
l.Write("%[1]sUnknown %[1]s = 0", e.Name)
defer l.Write(")")
for _, v := range e.Values {
var sb strings.Builder
upper := true
for _, c := range v.Word {
switch c {
case '_':
upper = true
default:
s := string([]rune{c})
if upper {
sb.WriteString(strings.ToUpper(s))
} else {
sb.WriteString(strings.ToLower(s))
}
upper = false
}
}

l.Write("%s%s = %d", e.Name, sb.String(), v.Value)
}
}
1 change: 1 addition & 0 deletions generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,7 @@ func main() {
for _, e := range newEnums {
e.WriteDefn(l)
e.WriteStringFunc(l)
e.WriteConsts(l)
}

fmt.Println(l.buf.String())
Expand Down
70 changes: 70 additions & 0 deletions pkg/kmsg/generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b94b155

Please sign in to comment.