1
0
mirror of https://github.com/fumiama/NanoBot.git synced 2026-06-05 18:50:24 +08:00

add channel patch/delete

This commit is contained in:
源文雨
2023-10-10 22:02:52 +09:00
parent f04743c7a5
commit 30554f4ffc
9 changed files with 268 additions and 51 deletions

View File

@@ -0,0 +1,51 @@
package main
import (
"os"
"strings"
)
const head = `// Code generated by codegen/patchopenapiof. DO NOT EDIT.
package nano
import (
"io"
"unsafe"
"github.com/pkg/errors"
)
`
const template = `
func (bot *Bot) patchOpenAPIof[T any](ep string, body io.Reader) (*[T any], error) {
resp := &struct {
CodeMessageBase
[T any]
}{}
err := bot.PatchOpenAPI(ep, resp, body)
if err != nil {
err = errors.Wrap(err, getCallerFuncName())
return nil, err
}
return (*[T any])(unsafe.Add(unsafe.Pointer(resp), unsafe.Sizeof(CodeMessageBase{}))), nil
}
`
func main() {
f, err := os.Create("openapi_codegen_patchopenapiof.go")
if err != nil {
panic(err)
}
defer f.Close()
_, err = f.WriteString(head)
if err != nil {
panic(err)
}
for _, name := range os.Args[1:] {
_, err = f.WriteString(strings.ReplaceAll(template, "[T any]", name))
if err != nil {
panic(err)
}
}
}