up3
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled

This commit is contained in:
2026-07-09 08:33:57 +08:00
commit 26ed99fda6
845 changed files with 75419 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
package sound
// Horn represents a variant of a goat horn.
type Horn struct {
goatHornType
}
// Ponder returns the 'Ponder' goat horn type.
func Ponder() Horn {
return Horn{0}
}
// Sing returns the 'Sing' goat horn type.
func Sing() Horn {
return Horn{1}
}
// Seek returns the 'Seek' goat horn type.
func Seek() Horn {
return Horn{2}
}
// Feel returns the 'Feel' goat horn type.
func Feel() Horn {
return Horn{3}
}
// Admire returns the 'Admire' goat horn type.
func Admire() Horn {
return Horn{4}
}
// Call returns the 'Call' goat horn type.
func Call() Horn {
return Horn{5}
}
// Yearn returns the 'Yearn' goat horn type.
func Yearn() Horn {
return Horn{6}
}
// Dream returns the 'Dream' goat horn type.
func Dream() Horn {
return Horn{7}
}
type goatHornType uint8
// Uint8 returns the goat horn type as a uint8.
func (g goatHornType) Uint8() uint8 {
return uint8(g)
}
// Name returns the goat horn type's name.
func (g goatHornType) Name() string {
switch g {
case 0:
return "Ponder"
case 1:
return "Sing"
case 2:
return "Seek"
case 3:
return "Feel"
case 4:
return "Admire"
case 5:
return "Call"
case 6:
return "Yearn"
case 7:
return "Dream"
}
panic("should never happen")
}
// GoatHorns ...
func GoatHorns() []Horn {
return []Horn{Ponder(), Sing(), Seek(), Feel(), Admire(), Call(), Yearn(), Dream()}
}