github.com/fumiama/NanoBot@v0.0.0-20231122134259-c22d8183efca/codegen/postopenapiof/main.go (about) 1 package main 2 3 import ( 4 "os" 5 "strings" 6 ) 7 8 const head = `// Code generated by codegen/postopenapiof. DO NOT EDIT. 9 10 package nano 11 12 import ( 13 "io" 14 15 "github.com/pkg/errors" 16 ) 17 ` 18 19 const template = ` 20 func (bot *Bot) postOpenAPIof[T any](ep, contenttype string, body io.Reader) (*[T any], error) { 21 resp := &struct { 22 CodeMessageBase 23 [T any] 24 }{} 25 err := bot.PostOpenAPI(ep, contenttype, resp, body) 26 if err != nil { 27 err = errors.Wrap(err, getCallerFuncName()) 28 } 29 return &resp.[T any], err 30 } 31 ` 32 33 func main() { 34 f, err := os.Create("openapi_codegen_postopenapiof.go") 35 if err != nil { 36 panic(err) 37 } 38 defer f.Close() 39 _, err = f.WriteString(head) 40 if err != nil { 41 panic(err) 42 } 43 for _, name := range os.Args[1:] { 44 _, err = f.WriteString(strings.ReplaceAll(template, "[T any]", name)) 45 if err != nil { 46 panic(err) 47 } 48 } 49 }