我的目标是比较 protobuf 消息中的一些字段。我试过MessageDifferencer,但我不想使用反射。我正在使用 protobuf 3.4.0。
时间变量存储在 protobuf 众所周知的类型中,例如 google.protobuf.Duration 和 google.protobuf.Timestamp。
我想使用一个宏,它需要两个对象和一个字段名:
CHECK_GPS_TIME ( expectedGps, storedGps, gps_time );
我期待以下结果:
CHECK ( expectedGps.gps_time().seconds() == storedGps.gps_time().seconds() );
我已经有一个简单类型的宏:
#define CHECK_GPS_FIELD(expected, stored, field) CHECK( expected.field() == stored.field() );