【解决一个小问题】proto文件中的enum,去掉长长的重复的enum名字

您所在的位置:网站首页 前缀proto 【解决一个小问题】proto文件中的enum,去掉长长的重复的enum名字

【解决一个小问题】proto文件中的enum,去掉长长的重复的enum名字

2024-05-24 15:00| 来源: 网络整理| 查看: 265

在proto中定义的enum,通常类型名字都会带上enum的前缀,很丑陋,如何去掉呢?

enum DataSourceType{ NotUse = 0; MySQL = 1; ElasticSearch = 2; }

生成后的代码如下:

const ( DataSourceType_NotUse DataSourceType = 0 DataSourceType_MySQL DataSourceType = 1 DataSourceType_ElasticSearch DataSourceType = 2 )

这个前缀如何去掉呢?使用gogo proto的扩展语法就可以了:

import "github.com/gogo/protobuf/gogoproto/gogo.proto"; enum DataSourceType{ option (gogoproto.goproto_enum_prefix)=false; // 用这个选项去掉前缀 NotUse = 0; MySQL = 1; ElasticSearch = 2; }

执行protoc,指定gogo proto的代码目录:

# 把gogo proto的代码放在了这个目录 /Users/ahfuzhang/code/github.com/gogo/protobuf/ protoc -I=. -I=/Users/ahfuzhang/code/ --gogofaster_out=plugins=grpc:. *.proto

最终生成的代码:

type DataSourceType int32 const ( NotUse DataSourceType = 0 MySQL DataSourceType = 1 ElasticSearch DataSourceType = 2 )

have fun 😃



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3