Documentation
¶
Index ¶
- func Escape(a string) string
- func Evallinks(fullPath string) (string, error)
- func IsExecutable(file os.FileInfo) bool
- func IsExecutableMode(mode os.FileMode) bool
- func IsSymLink(file os.FileInfo) bool
- func IsSymLinkMode(mode os.FileMode) bool
- func JaroWinkler(a, b string, boostThreshold float64, prefixSize int) float64
- func MakeLink(abs, name string) string
- func RecursivelySizeOf(info *item.FileInfo, depth int) int64
- func RemoveSep(s string) string
- func SplitNumberAndUnit(input string) (float64, string)
- func SupportsHyperlinks() bool
- type BatchDirectoryProcessor
- type BatchFileInfo
- type DirectoryProcessor
- type MockFileInfo
- type Once
- type OptimizationStrategy
- type SafeSet
- type Slice
- type TraditionalDirectoryProcessor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Escape ¶
Escape * Tab is escaped as `\t`. * Carriage return is escaped as `\r`. * Line feed is escaped as `\n`. * Single quote is escaped as `\'`. * Double quote is escaped as `\"`. * Backslash is escaped as `\\`.
func IsExecutable ¶
func IsExecutableMode ¶
func IsSymLinkMode ¶
func JaroWinkler ¶ added in v0.31.0
func RecursivelySizeOf ¶
RecursivelySizeOf returns the size of the file or directory depth < 0 means no limit
func SplitNumberAndUnit ¶ added in v0.27.0
SplitNumberAndUnit splits a string like "10bit" to 10 and "bit"
"12.3ml" to 12.4 and "ml"
"-1,234,213kg" to -1234213 and "kg"
func SupportsHyperlinks ¶ added in v0.31.0
func SupportsHyperlinks() bool
Types ¶
type BatchDirectoryProcessor ¶ added in v0.31.2
type BatchDirectoryProcessor struct {
// contains filtered or unexported fields
}
BatchDirectoryProcessor implements batch processing with optimizations Designed for larger directories and complex operations
func (*BatchDirectoryProcessor) ProcessDirectory ¶ added in v0.31.2
func (bdp *BatchDirectoryProcessor) ProcessDirectory(dirPath string) ([]*item.FileInfo, []error)
ProcessDirectory processes directory using batch approach for larger datasets
type BatchFileInfo ¶ added in v0.31.2
type BatchFileInfo struct {
// contains filtered or unexported fields
}
BatchFileInfo provides batch file information retrieval to reduce system calls
func NewBatchFileInfo ¶ added in v0.31.2
func NewBatchFileInfo(parent string) (*BatchFileInfo, error)
NewBatchFileInfo creates a new batch file info reader
func (*BatchFileInfo) GetCount ¶ added in v0.31.2
func (b *BatchFileInfo) GetCount() int
GetCount returns the number of files in the directory for pre-allocation
func (*BatchFileInfo) GetDirectoryCount ¶ added in v0.31.2
func (b *BatchFileInfo) GetDirectoryCount() int
GetDirectoryCount returns the number of subdirectories for more accurate pre-allocation
func (*BatchFileInfo) GetFileInfos ¶ added in v0.31.2
func (b *BatchFileInfo) GetFileInfos() ([]*item.FileInfo, []error)
GetFileInfos retrieves file information in batch with pre-allocated memory and string optimizations
func (*BatchFileInfo) HasSubdirectories ¶ added in v0.31.2
func (b *BatchFileInfo) HasSubdirectories() bool
HasSubdirectories checks if there are subdirectories for recursive optimization
type DirectoryProcessor ¶ added in v0.31.2
DirectoryProcessor defines interface for different directory processing strategies
type MockFileInfo ¶ added in v0.28.0
type MockFileInfo struct {
// contains filtered or unexported fields
}
func NewMockFileInfo ¶ added in v0.28.0
func (*MockFileInfo) IsDir ¶ added in v0.28.0
func (m *MockFileInfo) IsDir() bool
func (*MockFileInfo) ModTime ¶ added in v0.28.0
func (m *MockFileInfo) ModTime() time.Time
func (*MockFileInfo) Mode ¶ added in v0.28.0
func (m *MockFileInfo) Mode() os.FileMode
func (*MockFileInfo) Name ¶ added in v0.28.0
func (m *MockFileInfo) Name() string
func (*MockFileInfo) Size ¶ added in v0.28.0
func (m *MockFileInfo) Size() int64
func (*MockFileInfo) Sys ¶ added in v0.28.0
func (m *MockFileInfo) Sys() any
type OptimizationStrategy ¶ added in v0.31.2
type OptimizationStrategy struct {
// Thresholds for strategy selection
SmallDirThreshold int // Files count below which to use traditional approach
BatchModeEnabled bool // Global toggle for batch mode
}
OptimizationStrategy determines which processing strategy to use
func NewOptimizationStrategy ¶ added in v0.31.2
func NewOptimizationStrategy() *OptimizationStrategy
NewOptimizationStrategy creates a new strategy selector with default values
func (*OptimizationStrategy) EstimateDirectorySize ¶ added in v0.31.2
func (ots *OptimizationStrategy) EstimateDirectorySize(dirPath string) int
EstimateDirectorySize provides a quick estimate without full directory read
func (*OptimizationStrategy) SelectProcessor ¶ added in v0.31.2
func (ots *OptimizationStrategy) SelectProcessor(dirPath, outputFormat string, hasComplexFiltering bool) DirectoryProcessor
SelectProcessor chooses the optimal processing strategy based on context
type TraditionalDirectoryProcessor ¶ added in v0.31.2
type TraditionalDirectoryProcessor struct {
// contains filtered or unexported fields
}
TraditionalDirectoryProcessor implements traditional file-by-file processing Optimized for small directories and scenarios where batch overhead is not beneficial
func (*TraditionalDirectoryProcessor) ProcessDirectory ¶ added in v0.31.2
func (tdp *TraditionalDirectoryProcessor) ProcessDirectory(dirPath string) ([]*item.FileInfo, []error)
ProcessDirectory processes directory using traditional approach optimized for small datasets