filter

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package filter provides filtering functionality for modules based on glob patterns and segment values.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Apply

func Apply(modules []*discovery.Module, opts Options) []*discovery.Module

Apply applies all configured filters to modules.

func ParseSegmentFilters

func ParseSegmentFilters(args []string) map[string][]string

ParseSegmentFilters parses "key=value" strings into a segment filter map.

Types

type CompositeFilter

type CompositeFilter struct {
	// contains filtered or unexported fields
}

CompositeFilter combines multiple filters with AND logic.

func NewCompositeFilter

func NewCompositeFilter(filters ...ModuleFilter) *CompositeFilter

NewCompositeFilter creates a composite filter.

func (*CompositeFilter) FilterModules

func (f *CompositeFilter) FilterModules(modules []*discovery.Module) []*discovery.Module

FilterModules applies the composite filter to a list of modules.

func (*CompositeFilter) Match

func (f *CompositeFilter) Match(module *discovery.Module) bool

Match returns true if all filters match.

type GlobFilter

type GlobFilter struct {
	ExcludePatterns []string
	IncludePatterns []string
}

GlobFilter filters modules based on include/exclude glob patterns.

func NewGlobFilter

func NewGlobFilter(exclude, include []string) *GlobFilter

NewGlobFilter creates a new filter with the given patterns.

func (*GlobFilter) FilterModuleIDs

func (f *GlobFilter) FilterModuleIDs(moduleIDs []string) []string

FilterModuleIDs returns module IDs that match the filter criteria.

func (*GlobFilter) FilterModules

func (f *GlobFilter) FilterModules(modules []*discovery.Module) []*discovery.Module

FilterModules returns modules that match the filter criteria.

func (*GlobFilter) Match

func (f *GlobFilter) Match(moduleID string) bool

Match checks if a module ID matches the filter criteria.

func (*GlobFilter) MatchModule

func (f *GlobFilter) MatchModule(module *discovery.Module) bool

MatchModule implements ModuleFilter.

type ModuleFilter

type ModuleFilter interface {
	Match(module *discovery.Module) bool
}

ModuleFilter is an interface for module filters.

type Options

type Options struct {
	Excludes []string            // glob patterns to exclude
	Includes []string            // glob patterns to include (empty = all)
	Segments map[string][]string // segment name → allowed values (e.g. "service" → ["platform"])
}

Options contains all filter parameters.

type SegmentFilter

type SegmentFilter struct {
	Segment string   // segment name (e.g. "service", "environment", "region")
	Values  []string // allowed values
}

SegmentFilter filters modules by a named segment value.

func (*SegmentFilter) Match

func (f *SegmentFilter) Match(module *discovery.Module) bool

Match implements ModuleFilter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL