本文整理汇总了Golang中github.com/davyxu/pbmeta.FieldDescriptor.Name方法的典型用法代码示例。如果您正苦于以下问题:Golang FieldDescriptor.Name方法的具体用法?Golang FieldDescriptor.Name怎么用?Golang FieldDescriptor.Name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/davyxu/pbmeta.FieldDescriptor
的用法示例。
在下文中一共展示了FieldDescriptor.Name方法的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() {
return false
}
if fv.msgArray == nil {
fv.msgArray = make([]*DynamicMessage, 0)
}
fv.msgArray = append(fv.msgArray, value)
return true
}
示例2: 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()))
}
}
示例3: 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)))
}
}
示例4: SetValue
// 设置单一值
func (self *DynamicMessage) SetValue(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, false)
if fd.IsRepeated() {
return false
}
// 可选字段
if fd.IsOptional() {
var existValue string
if fv != nil {
existValue = fv.value
}
// 有指派默认值
if fd.DefaultValue() != "" {
existValue = fd.DefaultValue()
} else {
// 没有指派默认值, 取值的默认值
existValue = GetDefaultValue(fd)
}
// 输入值和已经存在的值一致, 就无需设置了
if existValue == value {
return true
}
}
if fv == nil {
fv = self.addValue(fd)
}
fv.value = value
return true
}
示例5: 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("}")
}
示例6: 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
}
示例7: 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)
}
}
示例8: 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))
}
示例9: SetMessage
// 单一消息
func (self *DynamicMessage) SetMessage(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
}
self.fetchValue(fd, true).msg = value
return true
}
示例10: WriteMessage
// Value是消息的字段
func (self *jsonWriter) WriteMessage(fd *pbmeta.FieldDescriptor, msg *data.DynamicMessage, indent int) {
pos := self.printer.Len()
if indent == 1 || fd.IsRepeated() {
self.printer.WriteString("{")
} else {
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)
}
}
示例11: 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() {
log.Errorf("field is non-repeated by used like repeated value", fd.Name())
return false
}
if fv.valueArray == nil {
fv.valueArray = make([]string, 0)
}
fv.valueArray = append(fv.valueArray, value)
return true
}
示例12: ClearFieldValue
// 删除值
func (self *DynamicMessage) ClearFieldValue(fd *pbmeta.FieldDescriptor) 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 message not value: '%s' in '%s'", fd.Name(), self.Desc.Name())
return false
}
fv := self.fetchValue(fd, false)
if fv == nil {
return true
}
delete(self.fieldMap, fd)
return true
}
示例13: printField
func printField(gen *Generator, fd *pbmeta.FieldDescriptor, msg *pbmeta.Descriptor, file *pbmeta.FileDescriptor) {
typeStr := fieldTypeString(fd)
memberVar := "_" + fd.Name()
// private int _Age = default(int);
if fd.IsRepeated() {
gen.Println("private readonly ", typeStr, " ", memberVar, " = new ", typeStr, "();")
} else {
gen.Println("private ", typeStr, " ", memberVar, " = ", getDefaultValue(fd), ";")
}
// [global::ProtoBuf.ProtoMember(10, IsRequired = false, [email protected]"Age", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
gen.BeginLine()
gen.Print("[global::ProtoBuf.ProtoMember(", fd.Define.GetNumber())
if !fd.IsRepeated() {
gen.Print(", IsRequired = ", isRequired(fd))
}
gen.Print(", [email protected]\"", fd.Name(), "\", DataFormat = global::ProtoBuf.DataFormat.", getDataFormat(fd), ")]")
gen.EndLine()
if !fd.IsRepeated() {
gen.Println("[global::System.ComponentModel.DefaultValue(", getDefaultValue(fd), ")]")
}
// 属性定义
gen.Println("public ", typeStr, " ", fd.Name())
gen.Println("{")
gen.In()
gen.Println("get { return ", memberVar, "; }")
if !fd.IsRepeated() {
gen.Println("set { ", memberVar, " = value; }")
}
gen.Out()
gen.Println("}")
}
示例14: RepeatedValueBegin
func (self *jsonWriter) RepeatedValueBegin(fd *pbmeta.FieldDescriptor) {
self.printer.WriteString(fmt.Sprintf("\"%s\" : [", fd.Name()))
}
示例15: Value2Struct
func Value2Struct(meta *tool.FieldMetaV1, structValue string, fd *pbmeta.FieldDescriptor, callback func(string, string) bool) (isValue2Struct bool, hasError bool) {
if meta == nil {
return
}
if meta.String2Struct == false {
return
}
if !fd.IsMessageType() {
hasError = true
log.Errorf("%s is not message type", fd.Name())
return
}
msgD := fd.MessageDesc()
if msgD == nil {
hasError = true
log.Errorf("%s message not found", fd.Name())
return
}
p := newLineParser(fd, structValue)
// 匹配顺序从高到低
defer func() {
err := recover()
switch err.(type) {
// 运行时错误
case interface {
RuntimeError()
}:
// 继续外抛, 方便调试
panic(err)
case error:
hasError = true
log.Errorf("field: %s parse error, %v", fd.Name(), err)
default:
isValue2Struct = true
}
}()
p.NextToken()
for {
if p.TokenID() != Token_Identifier {
hasError = true
log.Errorf("expect key in field: %s", fd.Name())
return
}
key := p.TokenValue()
structFD := FieldByNameWithMeta(msgD, key)
// 尝试查找字段定义
if structFD == nil {
hasError = true
log.Errorf("%s field not found ", key)
return
}
p.NextToken()
if p.TokenID() != Token_Comma {
hasError = true
log.Errorf("%s need ':' split value", key)
return
}
p.NextToken()
value := p.TokenValue()
// 按照正常流程转换值
if afterValue, ok := ValueConvetor(structFD, value); ok {
if !callback(key, afterValue) {
hasError = true
return
}
} else {
hasError = true
log.Errorf("%s convert failed", key)
return
}
p.NextToken()
}
//.........这里部分代码省略.........