Size: a a a

2020 May 06

DP

Daniel Podolsky in Go-go!
ziggy lucid
так типы преобразовывать надо для начала
разве кто-то применяет int32 и int64 добровольно?
это какая-то, с одной стороны, простая задача, а, с другой, очень сложная. не думаю, что это можно/нужно автоматизировать
источник

DP

Daniel Podolsky in Go-go!
но, если прям надо-надо - накидайте, там ничего сложного нет
источник

DP

Daniel Podolsky in Go-go!
вернее - есть, изучение ast :)
источник

а

а кто это in Go-go!
вот плохо что нет красивого апи для чтения и генерации
источник

DP

Daniel Podolsky in Go-go!
чтения чего?
источник

а

а кто это in Go-go!
исходников
источник

а

а кто это in Go-go!
по котором потом делать генерацию
источник

zl

ziggy lucid in Go-go!
Edgar
Так, я возможно не верно понял, но ты пытаешься сделать аналог генератора gRPC?
не, я увидел в закрепе проект и там странный синтаксис, который раньше не видел, решил полюбопытствовать, может что-то годное, как nil-слайсы
источник

а

а кто это in Go-go!
везде свой велосипед
источник

DP

Daniel Podolsky in Go-go!
это да. ast заточен под нужды компилятора, уже даже линтерам с ним довольно сложно
источник

E

Edgar in Go-go!
Но разве нет какой либо библиотеки, которая все неудобства упакует и предоставит удобное API?
источник

zl

ziggy lucid in Go-go!
спрошу на всякий, может зря мозоли на пальцах набиваю
существуют ли генераторы, которые генерят клиент и сервер с начинкой в виде grpc на основании интерфейса?
источник

zl

ziggy lucid in Go-go!
типа такого
я ему
type Service interface {
   Method(int) (string, error)
}
а оно мне файлик с клиентом и сервером готовым, а внутри grpc
источник

DP

Daniel Podolsky in Go-go!
то есть - надо из интерфейса сгенерить proto, и немножко обвязки?
источник

DP

Daniel Podolsky in Go-go!
я такого не встречал, но я и не интересовался
источник

DP

Daniel Podolsky in Go-go!
в принципе, задача простая и интересная
источник

zl

ziggy lucid in Go-go!
и главное востребованная
я поначалу на rpc валялкина и gotiny вынес сервис наружу, чтоб не возиться с преобразованиями типов, но подумал, что лучше не отрываться от мейнстрима в лице grpc, но тут выходит возни с преобразованиями типов на порядок больше
источник

DP

Daniel Podolsky in Go-go!
так это
источник

DP

Daniel Podolsky in Go-go!
начинаем с парсера, в полученном ast находим указанный интерфейс

дальше тривиально, есчли на входе и выходе тривиальные типы

если типы не тривиальные - возможны варианты, вплоть до “нагенерили мессаджей на половину типов проекта”
источник

DP

Daniel Podolsky in Go-go!
возможно, надо ограничить список типов входных, но тогда опять придется руками писать конвертеры
источник