starwing / lua-protobuf

A Lua module to work with Google protobuf
MIT License
1.71k stars 388 forks source link

希望支持 oneof 的 DefaultMessageDecoding #247

Open YoKnoWhat opened 1 year ago

YoKnoWhat commented 1 year ago

image 【诉求】形如上图的 message,业务层希望在开启 use_default_metatable 选项的时候, property_type_1.any_member 也能取到默认值。

目前的实现中,LPB_METADEF 这个解码模式只考虑了 USE_FIELD 的默认值,并且默认值设置逻辑中会忽略 oneof 字段。希望能针对原表默认值的机制做个支持,毕竟一个类型的元表只有一份,这种情景下针对所有 oneof 支持他们的默认值其实也是说得通的。

starwing commented 1 year ago

这个好像不太容易,因为如果要实现这个特性,需要考虑在赋值以后再设置默认值。这一点其实可以考虑一下,有pr最好啦,不过我自己目前没什么时间做这个。