Documentation
¶
Overview ¶
Package rule defines rules and their results.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FilterRules ¶
func FilterRules[T Rule](rules []T, filter *TargetFilter) []T
FilterRules returns only rules matching the filter. Returns all rules if filter is nil.
Types ¶
type Applicability ¶
type Applicability struct {
Platform binary.Platform
Compilers map[toolchain.Compiler]CompilerRequirement
}
Applicability defines which platforms and compilers a rule applies to.
type ApplicabilityResult ¶ added in v0.5.0
type ApplicabilityResult int
ApplicabilityResult indicates whether a rule applies to a binary.
const ( Applicable ApplicabilityResult = iota NotApplicableArchitecture NotApplicableCompiler )
func CheckApplicability ¶ added in v0.5.0
func CheckApplicability(app Applicability, info binary.Info) ApplicabilityResult
CheckApplicability determines whether a rule applies to the binary.
func (ApplicabilityResult) SkipMessage ¶ added in v0.5.0
func (r ApplicabilityResult) SkipMessage(info binary.Info) string
SkipMessage returns a detailed skip message including binary metadata.
func (ApplicabilityResult) String ¶ added in v0.5.0
func (r ApplicabilityResult) String() string
String returns a human-readable skip message for non-applicable results.
type CompilerRequirement ¶
type CompilerRequirement struct {
MinVersion toolchain.Version
DefaultVersion toolchain.Version
Flag string
}
CompilerRequirement specifies version and flag requirements for a compiler.
type CompilerTarget ¶
CompilerTarget specifies a compiler constraint for filtering rules.
type PlatformTarget ¶
type PlatformTarget struct {
Architecture binary.Architecture
MaxISA *binary.ISA
}
PlatformTarget specifies an architecture constraint for filtering rules.
type Rule ¶
type Rule interface {
ID() string
Name() string
Description() string
Applicability() Applicability
}
Rule is a check that can be executed against a binary.
type TargetFilter ¶
type TargetFilter struct {
Platforms []PlatformTarget
Compilers []CompilerTarget
}
TargetFilter selects rules based on platform and compiler constraints.