From 7051829581b426a410a3817921564d950f839768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sun, 30 Sep 2018 10:48:09 +0200 Subject: [PATCH] xgbgen: make request function signatures shorter --- nexgb/xgbgen/go_request_reply.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/nexgb/xgbgen/go_request_reply.go b/nexgb/xgbgen/go_request_reply.go index 1c0ce14..90dddb4 100644 --- a/nexgb/xgbgen/go_request_reply.go +++ b/nexgb/xgbgen/go_request_reply.go @@ -247,9 +247,23 @@ func (r *Request) ParamNames() string { func (r *Request) ParamNameTypes() string { nameTypes := make([]string, 0, len(r.Fields)) + + chunk := make([]string, 0) + chunkType := "" + flushChunk := func() { + if len(chunk) > 0 { + nameTypes = append(nameTypes, chunk[:len(chunk)-1]...) + nameTypes = append(nameTypes, + fmt.Sprintf("%s %s", chunk[len(chunk)-1], chunkType)) + } + chunk = nil + chunkType = "" + } + for _, field := range r.Fields { switch f := field.(type) { case *ValueField: + flushChunk() nameTypes = append(nameTypes, fmt.Sprintf("%s %s", f.MaskName, f.MaskType.SrcName())) nameTypes = append(nameTypes, @@ -261,9 +275,14 @@ func (r *Request) ParamNameTypes() string { case *RequiredStartAlign: continue default: - nameTypes = append(nameTypes, - fmt.Sprintf("%s %s", field.SrcName(), field.SrcType())) + curType := field.SrcType() + if curType != chunkType { + flushChunk() + } + chunk = append(chunk, field.SrcName()) + chunkType = curType } } + flushChunk() return strings.Join(nameTypes, ", ") }