clearUnknown removes unknown fields from m where remover.Has reports true.
(m protoreflect.Message, remover interface {
Has(protoreflect.FieldNumber) bool
})
| 334 | |
| 335 | // clearUnknown removes unknown fields from m where remover.Has reports true. |
| 336 | func clearUnknown(m protoreflect.Message, remover interface { |
| 337 | Has(protoreflect.FieldNumber) bool |
| 338 | }) { |
| 339 | var bo protoreflect.RawFields |
| 340 | for bi := m.GetUnknown(); len(bi) > 0; { |
| 341 | num, _, n := protowire.ConsumeField(bi) |
| 342 | if !remover.Has(num) { |
| 343 | bo = append(bo, bi[:n]...) |
| 344 | } |
| 345 | bi = bi[n:] |
| 346 | } |
| 347 | if bi := m.GetUnknown(); len(bi) != len(bo) { |
| 348 | m.SetUnknown(bo) |
| 349 | } |
| 350 | } |
| 351 | |
| 352 | type fieldNum protoreflect.FieldNumber |
| 353 |
no test coverage detected