代码拉取完成,页面将自动刷新
package proto_parser
import (
"github.com/emicklei/proto"
"regexp"
"strings"
)
func parseSrvGenRPC(srv *proto.Service) {
if srv.Comment == nil {
return
}
if len(srv.Comment.Lines) == 0 {
return
}
var needGen bool
var svcDesc, genTo string
var doc = srv.Comment.Lines
for _, com := range doc {
// 是否需要生成service代码
if strings.Contains(com, "@rpc_gen") {
var gr = regexp.MustCompile(RegexpRpcGen)
res := gr.MatchString(com)
if res {
needGen = true
continue
}
}
// service 注释
if strings.Contains(com, "@desc") {
reg := regexp.MustCompile(RegexpRouterRpcDesc)
res := reg.FindAllStringSubmatch(com, -1)
if len(res) == 1 && len(res[0]) == 2 {
svcDesc = trim(res[0][1])
continue
}
}
// service 生成位置
if strings.Contains(com, "@gen_to") {
var gt = regexp.MustCompile(RegexpRouterGenTo)
res := gt.FindAllStringSubmatch(com, -1)
if len(res) == 1 && len(res[0]) == 2 {
genTo = trim(res[0][1])
continue
}
}
}
if !needGen {
return
}
// 开始操作一拨
genServiceAllRpc(srv, svcDesc, genTo)
}
func genServiceAllRpc(srv *proto.Service, svcDesc, genTo string) {
// 取 genTo 不存在就创建文件
// 检测是否实现接口 没实现则生成实现方法
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。