• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang pbmeta.FieldDescriptor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/davyxu/pbmeta.FieldDescriptor的典型用法代码示例。如果您正苦于以下问题:Golang FieldDescriptor类的具体用法?Golang FieldDescriptor怎么用?Golang FieldDescriptor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了FieldDescriptor类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:30,代码来源:msg.go


示例2: isRequired

func isRequired(fd *pbmeta.FieldDescriptor) string {
	if fd.IsRequired() {
		return "true"
	}

	return "false"
}
开发者ID:davyxu,项目名称:protoc-gen-sharpnet,代码行数:7,代码来源:field.go


示例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()))
	}
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:8,代码来源:lua.go


示例4: valueWrapper

func valueWrapper(fd *pbmeta.FieldDescriptor, value string) string {
	switch fd.Type() {
	case pbprotos.FieldDescriptorProto_TYPE_STRING:
		return util.StringEscape(value)
	}

	return value
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:8,代码来源:util.go


示例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)
}
开发者ID:davyxu,项目名称:protoc-gen-sharpnet,代码行数:8,代码来源:field.go


示例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
}
开发者ID:jwk000,项目名称:tabtoy,代码行数:8,代码来源:pbt.go


示例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)))
	}

}
开发者ID:davyxu,项目名称:tabtoy,代码行数:10,代码来源:json.go


示例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"
}
开发者ID:xiaobodu,项目名称:protoc-gen-sharpnet,代码行数:12,代码来源:field.go


示例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

}
开发者ID:jwk000,项目名称:tabtoy,代码行数:15,代码来源:repcheck.go


示例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
}
开发者ID:jwk000,项目名称:tabtoy,代码行数:27,代码来源:msg.go


示例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("}")

}
开发者ID:davyxu,项目名称:tabtoy,代码行数:15,代码来源:lua.go


示例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)
	}
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:16,代码来源:pbt.go


示例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))
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:17,代码来源:lua.go


示例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
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:19,代码来源:msg.go


示例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
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:19,代码来源:msg.go


示例16: 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)
	}
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:21,代码来源:json.go


示例17: fieldTypeString

func fieldTypeString(fd *pbmeta.FieldDescriptor) string {

	var ret string

	switch fd.Type() {

	case pbprotos.FieldDescriptorProto_TYPE_INT32:
		ret = "int"
	case pbprotos.FieldDescriptorProto_TYPE_UINT32:
		ret = "uint"
	case pbprotos.FieldDescriptorProto_TYPE_BOOL:
		ret = "bool"
	case pbprotos.FieldDescriptorProto_TYPE_FLOAT:
		ret = "float"
	case pbprotos.FieldDescriptorProto_TYPE_DOUBLE:
		ret = "double"
	case pbprotos.FieldDescriptorProto_TYPE_STRING:
		ret = "string"
	case pbprotos.FieldDescriptorProto_TYPE_INT64:
		ret = "long"
	case pbprotos.FieldDescriptorProto_TYPE_ENUM,
		pbprotos.FieldDescriptorProto_TYPE_MESSAGE:
		ret = fd.FullTypeName()
	default:
		ret = "unknown"
	}

	if fd.IsRepeated() {
		return fmt.Sprintf("global::System.Collections.Generic.List<%s>", ret)
	}

	return ret
}
开发者ID:cbbbc,项目名称:protoc-gen-sharpnet,代码行数:33,代码来源:field.go


示例18: 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
	}

	if fd.IsRepeated() {
		log.Errorf("field is repeated by used like non-repeated value", fd.Name())

		return false
	}

	self.fetchValue(fd, true).msg = value

	return true
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:23,代码来源:msg.go


示例19: jsonvalueWrapper

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
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:24,代码来源:json.go


示例20: 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
}
开发者ID:davyxu,项目名称:tabtoy,代码行数:23,代码来源:msg.go



注:本文中的github.com/davyxu/pbmeta.FieldDescriptor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang captcha.New函数代码示例发布时间:2022-05-23
下一篇:
Golang golog.New函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap