search

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package search implementa el recorrido concurrente de directorios.

El recorrido usa un número acotado de goroutines: cada subdirectorio se entrega a una goroutine nueva si hay un "slot" libre en el semáforo; si no, la goroutine actual lo procesa en línea (en profundidad). Así nunca hay más de Workers goroutines activas, no puede producirse un interbloqueo y los núcleos se mantienen ocupados mientras quede trabajo pendiente.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultWorkers

func DefaultWorkers() int

DefaultWorkers devuelve el grado de concurrencia por defecto. Leer directorios es una operación dominada por E/S, así que conviene tener más goroutines que núcleos.

Types

type Matcher

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

Matcher compara nombres de carpeta con un término de búsqueda, sin distinguir mayúsculas de minúsculas (igual que el sistema de archivos de Windows).

  • Sin comodines, el término se busca como subcadena: "proy" coincide con "Proyectos" y con "mi-proyecto".
  • Con comodines (* ? [..]) el patrón debe cubrir el nombre completo: "proy*" coincide con "Proyectos" pero no con "mi-proyecto".

func NewMatcher

func NewMatcher(term string) (*Matcher, error)

NewMatcher crea un Matcher y valida la sintaxis del patrón.

func (*Matcher) Match

func (m *Matcher) Match(name string) bool

Match indica si name coincide con el término de búsqueda.

type Options

type Options struct {
	// Root es el directorio desde el que comienza el recorrido. Debe ser una
	// ruta ya resuelta (sin variables de entorno).
	Root string
	// Matcher decide qué nombres de carpeta coinciden.
	Matcher *Matcher
	// IncludeHidden incluye carpetas ocultas y de sistema.
	IncludeHidden bool
	// Workers es el máximo de goroutines de recorrido simultáneas.
	// Si es <= 0 se usa DefaultWorkers().
	Workers int
}

Options configura una búsqueda.

type Stats

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

Stats contiene los contadores de una búsqueda. Sus valores son definitivos una vez que el canal de resultados se ha cerrado.

func Start

func Start(ctx context.Context, opts Options) (<-chan string, *Stats)

Start inicia la búsqueda en segundo plano y devuelve un canal por el que se emite la ruta completa de cada carpeta coincidente. El canal se cierra al terminar el recorrido o al cancelarse ctx.

func (*Stats) Denied

func (s *Stats) Denied() int64

Denied devuelve el número de carpetas que no se pudieron leer (normalmente por falta de permisos).

func (*Stats) Scanned

func (s *Stats) Scanned() int64

Scanned devuelve el número de carpetas cuyo contenido se ha leído.

Jump to

Keyboard shortcuts

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