rule/rule.go
func (r *Rule) SetPrivateAttr(key string, value interface{}) {
	r.private[key] = value
}
func (r *Rule) SetPrivateAttr(key string, value interface{}) {
	r.private[key] = value
}
// SetPrivateAttr associates a value with a key. Unlike SetAttr, this value
// is not converted to a build syntax tree and will not be written to a build
// file.