本文整理汇总了Golang中github.com/davyxu/pbmeta.FieldDescriptor类的典型用法代码示例。如果您正苦于以下问题:Golang FieldDescriptor类的具体用法?Golang FieldDescriptor怎么用?Golang FieldDescriptor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FieldDescriptor类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AddRepeatedMessage
// 添加消息数组
func (self *DynamicMessage) AddRepeatedMessage(fd *pbmeta.FieldDescriptor, value *DynamicMessage) bool {
if fd == nil || !self.Desc.Contains(fd) {
log.Errorf("field not found: '%s' in '%s'", fd.Name(), self.Desc.Name())
return false
}
if fd.Type() != pbprotos.FieldDescriptorProto_TYPE_MESSAGE {
log.Errorf("field is not message: '%s' in '%s'", fd.Name(), self.Desc.Name())
return false
}
fv := self.fetchValue(fd, true)
if !fd.IsRepeated() {
log.Errorf("field is non-repeated by used like repeated value", fd.Name())
return false
}
if fv.msgArray == nil {
fv.msgArray = make([]*DynamicMessage, 0)
}
fv.msgArray = append(fv.msgArray, value)
return true
}
示例2: isRequired
func isRequired(fd *pbmeta.FieldDescriptor) string {
if fd.IsRequired() {
return "true"
}
return "false"
}
示例3: RepeatedMessageBegin
func (self *luaWriter) RepeatedMessageBegin(fd *pbmeta.FieldDescriptor, msg *data.DynamicMessage, msgCount int, indent int) {
if indent == 1 {
self.printer.WriteString(fmt.Sprintf("%s = {\n", fd.Name()))
} else {
self.printer.WriteString(fmt.Sprintf("%s = {", fd.Name()))
}
}
示例4: valueWrapper
func valueWrapper(fd *pbmeta.FieldDescriptor, value string) string {
switch fd.Type() {
case pbprotos.FieldDescriptorProto_TYPE_STRING:
return util.StringEscape(value)
}
return value
}
示例5: wrapDefaultValue
func wrapDefaultValue(fd *pbmeta.FieldDescriptor, typestr string) string {
v := strings.TrimSpace(fd.DefaultValue())
if v != "" {
return fmt.Sprintf("(%s)%s", typestr, v)
}
return fmt.Sprintf("default(%s)", typestr)
}
示例6: valueWrapper
func valueWrapper(fd *pbmeta.FieldDescriptor, value string) string {
switch fd.Type() {
case pbprotos.FieldDescriptorProto_TYPE_STRING:
return fmt.Sprintf("\"%s\"", value)
}
return value
}
示例7: WriteValue
// 普通值
func (self *jsonWriter) WriteValue(fd *pbmeta.FieldDescriptor, value string, indent int) {
if fd.IsRepeated() {
self.printer.WriteString(jsonvalueWrapper(fd, value))
} else {
self.printer.WriteString(fmt.Sprintf("\"%s\": %s", fd.Name(), jsonvalueWrapper(fd, value)))
}
}
示例8: getDataFormat
func getDataFormat(fd *pbmeta.FieldDescriptor) string {
switch fd.Type() {
case pbprotos.FieldDescriptorProto_TYPE_STRING,
pbprotos.FieldDescriptorProto_TYPE_MESSAGE,
pbprotos.FieldDescriptorProto_TYPE_BOOL:
return "Default"
case pbprotos.FieldDescriptorProto_TYPE_FLOAT:
return "FixedSize"
}
return "TwosComplement"
}
示例9: Check
// 重复值检查, 如果meta中描述有开启则开启
func (self RepeatValueChecker) Check(meta *tool.FieldMeta, fd *pbmeta.FieldDescriptor, value string) {
if meta == nil || meta.RepeatCheck == false {
return
}
if self.contain(value) {
log.Errorf("detected duplicate value %s=%s", fd.Name(), value)
return
}
self[value] = true
}
示例10: AddRepeatedValue
// 添加值数组
func (self *DynamicMessage) AddRepeatedValue(fd *pbmeta.FieldDescriptor, value string) bool {
if fd == nil || !self.Desc.Contains(fd) {
log.Errorf("field not found: '%s' in '%s', value: '%s'", fd.Name(), self.Desc.Name(), value)
return false
}
if fd.Type() == pbprotos.FieldDescriptorProto_TYPE_MESSAGE {
log.Errorf("field is message not value: '%s' in '%s', value: '%s'", fd.Name(), self.Desc.Name(), value)
return false
}
fv := self.fetchValue(fd, true)
if !fd.IsRepeated() {
return false
}
if fv.valueArray == nil {
fv.valueArray = make([]string, 0)
}
fv.valueArray = append(fv.valueArray, value)
return true
}
示例11: WriteMessage
// Value是消息的字段
func (self *luaWriter) WriteMessage(fd *pbmeta.FieldDescriptor, msg *data.DynamicMessage, indent int) {
if indent == 1 || fd.IsRepeated() {
self.printer.WriteString("{")
} else {
self.printer.WriteString(fmt.Sprintf("%s = {", fd.Name()))
}
rawWriteMessage(&self.printer, self, msg, indent)
self.printer.WriteString("}")
}
示例12: WriteMessage
// Value是消息的字段
func (self *pbtWriter) WriteMessage(fd *pbmeta.FieldDescriptor, msg *data.DynamicMessage, indent int) {
pos := self.printer.Len()
self.printer.WriteString(fmt.Sprintf("%s {", fd.Name()))
valueWrite := rawWriteMessage(&self.printer, self, msg, indent)
self.printer.WriteString("}")
// 如果没写入值, 将回滚写入
if valueWrite == 0 {
self.printer.Truncate(pos)
}
}
示例13: WriteValue
// 普通值
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))
}
示例14: GetRepeatedMessage
// 取消息数组
func (self *DynamicMessage) GetRepeatedMessage(fd *pbmeta.FieldDescriptor) []*DynamicMessage {
if fd.Type() != pbprotos.FieldDescriptorProto_TYPE_MESSAGE {
return nil
}
fv, ok := self.fieldMap[fd]
if !ok {
return nil
}
if !fd.IsRepeated() {
return nil
}
return fv.msgArray
}
示例15: GetValue
// 取单一值
func (self *DynamicMessage) GetValue(fd *pbmeta.FieldDescriptor) (string, bool) {
if fd.Type() == pbprotos.FieldDescriptorProto_TYPE_MESSAGE {
return "", false
}
fv, ok := self.fieldMap[fd]
if !ok {
return "", false
}
if fd.IsRepeated() {
return "", false
}
return fv.value, true
}