repositorypackage
0.0.0-20240509014015-1dca2478ad50
Repository: https://github.com/acj/scrub.git
Documentation: pkg.go.dev
# README
scrub
Recursively set specific struct fields to their zero values
Possible use cases:
- scrubbing sensitive data from structs before logging
- comparing structs with noisy fields (timestamps, random values, etc) for testing or diagnostic purposes
Examples
Using struct tags
package main
import (
"fmt"
"github.com/acj/scrub"
)
type User struct {
Name string
Age int `scrub:"true"`
}
func main() {
user := User{
Name: "Wall-E",
Age: 22,
}
scrub.TaggedFields(&user)
fmt.Printf("%+v\n", user) // {Name:Wall-E Age:0}
}
Using named fields (blocklist)
package main
import (
"fmt"
"github.com/acj/scrub"
)
type User struct {
Name string
Age int
}
func main() {
user := User{
Name: "Wall-E",
Age: 22,
}
scrub.NamedFields(&user, "Age")
fmt.Printf("%+v\n", user) // {Name:Wall-E Age:0}
}
License
MIT