func valueWrapper(fd *pbmeta.FieldDescriptor, value string) string { switch fd.Type() { case pbprotos.FieldDescriptorProto_TYPE_STRING: return util.StringEscape(value) } return value }
func valueWrapperPbt(t model.FieldType, node *model.Node) string { switch t { case model.FieldType_String: return util.StringEscape(node.Value) } return node.Value }
func valueWrapperLua(t model.FieldType, n *model.Node) string { switch t { case model.FieldType_String: return util.StringEscape(n.Value) case model.FieldType_Enum: return fmt.Sprintf("\"%s\"", n.Value) } return n.Value }
func valueWrapperJson(t model.FieldType, node *model.Node) string { switch t { case model.FieldType_String: return util.StringEscape(node.Value) case model.FieldType_Enum: return strconv.Itoa(int(node.EnumValue)) } return node.Value }
// 普通值 func (self *luaWriter) WriteValue(fd *pbmeta.FieldDescriptor, value string, indent int) { var finalValue string switch fd.Type() { case pbprotos.FieldDescriptorProto_TYPE_STRING, pbprotos.FieldDescriptorProto_TYPE_ENUM: finalValue = util.StringEscape(value) case pbprotos.FieldDescriptorProto_TYPE_INT64, pbprotos.FieldDescriptorProto_TYPE_UINT64: finalValue = fmt.Sprintf("\"%s\"", value) default: finalValue = value } self.printer.WriteString(fmt.Sprintf("%s = %s", fd.Name(), finalValue)) }
func jsonvalueWrapper(fd *pbmeta.FieldDescriptor, value string) string { switch fd.Type() { case pbprotos.FieldDescriptorProto_TYPE_STRING: return util.StringEscape(value) case pbprotos.FieldDescriptorProto_TYPE_ENUM: ed := fd.EnumDesc() if ed == nil { return "0" } evd := ed.ValueByName(value) if evd == nil { return "0" } return strconv.Itoa(int(evd.Value())) } return value }