goprotobuf: export from internal version.
- String() method on enum types for easy printing
- GetExtensions function for getting extensions in bulk
R=r
CC=golang-dev
http://codereview.appspot.com/4300057
diff --git a/compiler/generator/generator.go b/compiler/generator/generator.go
index 9878ef1..7c2a39e 100644
--- a/compiler/generator/generator.go
+++ b/compiler/generator/generator.go
@@ -779,7 +779,7 @@
}
g.Out()
g.P(")")
- g.P("var ", ccTypeName, "_name = map[int32] string {")
+ g.P("var ", ccTypeName, "_name = map[int32]string{")
g.In()
generated := make(map[int32]bool) // avoid duplicate values
for _, e := range enum.Value {
@@ -792,19 +792,27 @@
}
g.Out()
g.P("}")
- g.P("var ", ccTypeName, "_value = map[string] int32 {")
+ g.P("var ", ccTypeName, "_value = map[string]int32{")
g.In()
for _, e := range enum.Value {
g.P(Quote(*e.Name), ": ", e.Number, ",")
}
g.Out()
g.P("}")
+
g.P("func New", ccTypeName, "(x int32) *", ccTypeName, " {")
g.In()
g.P("e := ", ccTypeName, "(x)")
g.P("return &e")
g.Out()
g.P("}")
+
+ g.P("func (x ", ccTypeName, ") String() string {")
+ g.In()
+ g.P("return ", g.ProtoPkg, ".EnumName(", ccTypeName, "_name, int32(x))")
+ g.Out()
+ g.P("}")
+
g.P()
}