v0.1.0 initial commit

This commit is contained in:
2026-07-12 18:41:05 -04:00
commit aa22225c61
69 changed files with 10971 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
package tui
// Coverage represents count/total for display in tree nodes
type Coverage struct {
Count int
Total int
}
// IsAll returns true if count equals total and total is positive
func (c Coverage) IsAll() bool {
return c.Count == c.Total && c.Total > 0
}
// IsPartial returns true if count is between zero and total (exclusive)
func (c Coverage) IsPartial() bool {
return c.Count > 0 && c.Count < c.Total
}
// IsNone returns true if count is zero
func (c Coverage) IsNone() bool {
return c.Count == 0
}
// String returns coverage as "[count/total]", "[ALL]", or empty string if total is zero
func (c Coverage) String() string {
if c.Total == 0 {
return ""
}
if c.IsAll() {
return "[ALL]"
}
return "[" + intStr(c.Count) + "/" + intStr(c.Total) + "]"
}
// FormatCoverageSuffix returns a suffix string for TreeNode.Suffix
func FormatCoverageSuffix(count, total int) string {
if total == 0 {
return ""
}
if count == total {
return " [ALL]"
}
return " [" + intStr(count) + "/" + intStr(total) + "]"
}
// intStr converts int to string without fmt dependency
func intStr(n int) string {
if n == 0 {
return "0"
}
neg := n < 0
if neg {
n = -n
}
var buf [20]byte
i := len(buf)
for n > 0 {
i--
buf[i] = byte('0' + n%10)
n /= 10
}
if neg {
i--
buf[i] = '-'
}
return string(buf[i:])
}