Сохранить карту [uint64] * Сообщение в буфер протокола - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу спросить, знает ли кто-нибудь формат, который мне нужно использовать в моем файле .proto для сохранения карты [uint64] * Struct.

Я пробовал это:

enum ProgressType {
    ProgressStateProbe      =0;
    ProgressStateReplicate  =1;
    ProgressStateSnapshot   =2;
}
message Progress{
    required uint64          match           = 1  [(gogoproto.nullable) = false];
    required uint64          next            = 2  [(gogoproto.nullable) = false];
    required ProgressType    type            = 3  [(gogoproto.nullable) = false];
    required bool            paused          = 4  [(gogoproto.nullable) = false];
    required uint64          pendingsnapshot = 5  [(gogoproto.nullable) = false];

}

message Message {
    repeated Progress    members     = 15 [(gogoproto.nullable) = false];
    repeated Progress    learners    = 16 [(gogoproto.nullable) = false];
}

Теперь в моем коде Go:

m.Members = members //members are of type Map[uint64]*Progress
m.Learners = learners //learners are of type Map[uint64]*Progress

Я получаю следующую ошибку: не могу использовать члены (type map [uint64] * Progress) в качестве типа [] raftpb.Progress в назначении

...