func (this *Handler) Run() {
	for _, cred := range this.creds {
		for _, host := range this.hosts {
			this.in <- inputs.Data{
				Target: host,
				Cred:   cred,
			}
		}
	}
}
Loops through credentials one at a time and does all hosts for each, this will
limit the number of attempts we have on a host in short timeframes
package wide
import (
	"github.com/emperorcow/go-netscan/inputs"
	"github.com/emperorcow/go-netscan/scanners"
)
type Handler struct {
	in    chan inputs.Data
	hosts []string
	creds []scanners.Credential
}
func (this *Handler) Description() string {
	return "Runs one credential per host before going to the next."
}
func (this *Handler) Chan() chan inputs.Data {
	return this.in
}
func (this *Handler) AddTarget(target string) error {
	this.hosts = append(this.hosts, target)
	return nil
}
func (this *Handler) AddCred(cred scanners.Credential) error {
	this.creds = append(this.creds, cred)
	return nil
}