mirror of
https://github.com/tw93/Mole.git
synced 2026-03-22 23:05:08 +00:00
All files in cmd/analyze/ are macOS-only but several were missing the //go:build darwin constraint. On Linux (e.g. CodeQL CI), Go compiled these files without the types defined in main.go (which had the tag), causing undefined symbol errors for dirEntry, fileEntry, scanResult, cacheEntry, historyEntry and model. - Add //go:build darwin to heap.go, cache.go, scanner.go, cleanable.go, delete.go, format.go, constants.go and all *_test.go files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
42 lines
973 B
Go
42 lines
973 B
Go
//go:build darwin
|
|
|
|
package main
|
|
|
|
// entryHeap is a min-heap of dirEntry used to keep Top N largest entries.
|
|
type entryHeap []dirEntry
|
|
|
|
func (h entryHeap) Len() int { return len(h) }
|
|
func (h entryHeap) Less(i, j int) bool { return h[i].Size < h[j].Size }
|
|
func (h entryHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }
|
|
|
|
func (h *entryHeap) Push(x any) {
|
|
*h = append(*h, x.(dirEntry))
|
|
}
|
|
|
|
func (h *entryHeap) Pop() any {
|
|
old := *h
|
|
n := len(old)
|
|
x := old[n-1]
|
|
*h = old[0 : n-1]
|
|
return x
|
|
}
|
|
|
|
// largeFileHeap is a min-heap for fileEntry.
|
|
type largeFileHeap []fileEntry
|
|
|
|
func (h largeFileHeap) Len() int { return len(h) }
|
|
func (h largeFileHeap) Less(i, j int) bool { return h[i].Size < h[j].Size }
|
|
func (h largeFileHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }
|
|
|
|
func (h *largeFileHeap) Push(x any) {
|
|
*h = append(*h, x.(fileEntry))
|
|
}
|
|
|
|
func (h *largeFileHeap) Pop() any {
|
|
old := *h
|
|
n := len(old)
|
|
x := old[n-1]
|
|
*h = old[0 : n-1]
|
|
return x
|
|
}
|