move indexOf into the vbantxt package.

improve the warning message on invalid bps value
This commit is contained in:
onyx-and-iris 2024-11-03 16:15:05 +00:00
parent 7a844e3624
commit ae170ca572
4 changed files with 16 additions and 14 deletions

View File

@ -82,12 +82,12 @@ func main() {
}
}
func createClient(host string, port int, streamname string, bps int, channel, ratelimit int) (*vbantxt.VbanTxt, error) {
func createClient(host string, port int, streamname string, bps, channel, ratelimit int) (*vbantxt.VbanTxt, error) {
client, err := vbantxt.New(
host,
port,
streamname,
vbantxt.WithBPSOpt(indexOf(vbantxt.BpsOpts, bps)),
vbantxt.WithBPSOpt(bps),
vbantxt.WithChannel(channel),
vbantxt.WithRateLimit(time.Duration(ratelimit)*time.Millisecond))
if err != nil {

View File

@ -15,12 +15,3 @@ func flagsPassed(flags []string) bool {
})
return found
}
func indexOf[T comparable](collection []T, e T) int {
for i, x := range collection {
if x == e {
return i
}
}
return -1
}

View File

@ -17,10 +17,11 @@ func WithRateLimit(ratelimit time.Duration) Option {
}
// WithBPSOpt is a functional option to set the bps index for {VbanTx}.{Packet}.bpsIndex
func WithBPSOpt(bpsIndex int) Option {
func WithBPSOpt(bps int) Option {
return func(vt *VbanTxt) {
if bpsIndex < 0 || bpsIndex >= len(BpsOpts) {
log.Warnf("invalid bpsIndex %d, defaulting to 0", bpsIndex)
bpsIndex := indexOf(BpsOpts, bps)
if bpsIndex == -1 {
log.Warnf("invalid bps value %d, expected one of %v, defaulting to 0", bps, BpsOpts)
return
}
vt.packet.bpsIndex = bpsIndex

10
util.go Normal file
View File

@ -0,0 +1,10 @@
package vbantxt
func indexOf[T comparable](collection []T, e T) int {
for i, x := range collection {
if x == e {
return i
}
}
return -1
}