Sha256: 734d1b01d6aa8cfc70cb5b7fc19091453d83e5bf00e932bd7d52b0fa824fa9cc
Contents?: true
Size: 1.83 KB
Versions: 16
Compression:
Stored size: 1.83 KB
Contents
package v4 import ( sdkstrings "github.com/aws/aws-sdk-go-v2/internal/strings" ) // Rules houses a set of Rule needed for validation of a // string value type Rules []Rule // Rule interface allows for more flexible rules and just simply // checks whether or not a value adheres to that Rule type Rule interface { IsValid(value string) bool } // IsValid will iterate through all rules and see if any rules // apply to the value and supports nested rules func (r Rules) IsValid(value string) bool { for _, rule := range r { if rule.IsValid(value) { return true } } return false } // MapRule generic Rule for maps type MapRule map[string]struct{} // IsValid for the map Rule satisfies whether it exists in the map func (m MapRule) IsValid(value string) bool { _, ok := m[value] return ok } // AllowList is a generic Rule for whitelisting type AllowList struct { Rule } // IsValid for AllowList checks if the value is within the AllowList func (w AllowList) IsValid(value string) bool { return w.Rule.IsValid(value) } // DenyList is a generic Rule for blacklisting type DenyList struct { Rule } // IsValid for AllowList checks if the value is within the AllowList func (b DenyList) IsValid(value string) bool { return !b.Rule.IsValid(value) } // Patterns is a list of strings to match against type Patterns []string // IsValid for Patterns checks each pattern and returns if a match has // been found func (p Patterns) IsValid(value string) bool { for _, pattern := range p { if sdkstrings.HasPrefixFold(value, pattern) { return true } } return false } // InclusiveRules rules allow for rules to depend on one another type InclusiveRules []Rule // IsValid will return true if all rules are true func (r InclusiveRules) IsValid(value string) bool { for _, rule := range r { if !rule.IsValid(value) { return false } } return true }
Version data entries
16 entries across 16 versions & 1 rubygems