// internal/metrics/metrics.go
package metrics

import "os"

// FileSize opens a file to stat it, but never closes the handle on any
// return path. Because this is exported library code, gohawk cannot assume
// a process exit will reclaim the descriptor.
func FileSize(path string) (int64, error) {
	f, err := os.Open(path)
	if err != nil {
		return 0, err
	}
	info, err := f.Stat()
	if err != nil {
		return 0, err
	}
	return info.Size(), nil
}
