Files
clio/tools/requests_gun/internal/ammo_provider/ammo_provider.go
Ayaz Salikhov 424af5dfe0 style: Apply go fmt to go code (#2046)
~I will add pre-commit hook later if I find a good one~

Found a nice repo, but it is no longer maintained:
https://github.com/dnephin/pre-commit-golang
So, I implemented the check as a local hook.
2025-04-28 16:04:50 +01:00

38 lines
622 B
Go

package ammo_provider
import (
"bufio"
"io"
"strings"
"sync/atomic"
)
type AmmoProvider struct {
ammo []string
currentBullet atomic.Uint64
}
func (ap *AmmoProvider) getIndex() uint64 {
result := ap.currentBullet.Add(1)
return result % uint64(len(ap.ammo))
}
func (ap *AmmoProvider) GetBullet() string {
for {
res := ap.ammo[ap.getIndex()]
if !strings.HasPrefix(res, "#") {
return res
}
}
}
func New(reader io.Reader) *AmmoProvider {
scanner := bufio.NewScanner(reader)
var ammo []string
for scanner.Scan() {
ammo = append(ammo, scanner.Text())
}
return &AmmoProvider{ammo: ammo}
}