Skip to content

Instantly share code, notes, and snippets.

View picatz's full-sized avatar
Graph Theory

Kent Gruber picatz

Graph Theory
View GitHub Profile
@picatz
picatz / clear_proto.go
Created September 2, 2024 03:10 — forked from Olex1313/clear_proto.go
Example cleanup function for protobuf message
func clearProtoFields(msg proto.Message, sensitiveFieldAnnotation *protoimpl.ExtensionInfo) proto.Message {
clonedMsg := proto.Clone(msg)
reflectMsg := proto.MessageReflect(clonedMsg)
var messagesToCheck []protoreflect.Message
messagesToCheck = append(messagesToCheck, reflectMsg)
for len(messagesToCheck) != 0 {
lastIdx := len(messagesToCheck) - 1
visitMessage := messagesToCheck[lastIdx]
messagesToCheck = messagesToCheck[:lastIdx]