Я следую учебному пособию Go для Thrift (https://thrift.apache.org/tutorial/go). Бег Go 1.13.4 и Экономия 0.13.0. Учебник как есть работает на 100%. Затем я изменяю shared.thrift, добавляя enum и используя этот тип enum для аргумента в функции getStruct ():
namespace go shared
struct SharedStruct {
1: i32 key
2: string value
}
enum KeyType {
KEY0,
KEY1
}
service SharedService {
SharedStruct getStruct(1: i32 key, 2: KeyType keyT)
}
Сгенерированные пакеты Go не содержат ошибок, но калькулятор удален. go приложение ссылается на перечисление KeyType как tutorial.KeyType, что приводит к неопределенной ошибке ссылки, поскольку KeyType определен в общем пакете. То же самое происходит, когда я пытаюсь использовать список или карту структуры, определенной в shared.thrift, в качестве типа аргумента в функции getStruct ().
Что мне здесь не хватает? Как я уже сказал, сгенерированные пакеты не содержат ошибок и их можно было бы использовать в моем собственном приложении, но сгенерированное приложение ссылается на них неправильно.