Я открываю генератор (иди генерирую) и пытаюсь сгенерировать функцию проверки для моей структуры.
Идея состоит в том, что я не хочу, чтобы моя программа использовала отражение во время выполнения, я былучше использовать генератор для отражения фактического метода, который я хочу использовать.
проблема в том, что я не могу импортировать свои структуры в код генератора, единственный способ, который я нашел до сих пор, это прочитать .goфайл из генератора и вручную проанализируйте типы, определенные там, используя регулярное выражение
У меня есть что-то вроде
models / models.go:
package models
//go:generate go run ../generator.go -file models.go
type MyStruct struct {
...
}
generator.go:
package main
func main() {
f, err := ioutil.ReadFile(fileName) // I read filename from the flag provided
...
// I parse f to generate my stuff
}
Я бы очень хотел иметь пакет для самоанализа, который бы взял код go в виде строки и дал бы мне некоторую информацию об определенной здесь структуре
Или, возможно, есть способимпортировать файл, вызывающий go: generate, чтобы получить прямой доступ к типам