apg-go/algo.go
Winni Neessen 2822f73f56
#53 Add coinflip algorithm and improve error messages
Introduced a new password generation algorithm, called 'coinflip', which simply returns "Heads" or "Tails". Associated CLI flag has been added as well. Also, improved error messages during password generation. This addition provides a simpler algorithm option and clearer user feedback during errors.
2023-08-05 18:10:11 +02:00

34 lines
859 B
Go

package apg
// Algorithm is a type wrapper for an int type to represent different
// password generation algorithm
type Algorithm int
const (
// AlgoPronouncable represents the algorithm for pronouncable passwords
// (koremutake syllables)
AlgoPronouncable Algorithm = iota
// AlgoRandom represents the algorithm for purely random passwords according
// to the provided password modes/flags
AlgoRandom
// AlgoCoinFlip represents a very simple coinflip algorithm returning "heads"
// or "tails"
AlgoCoinFlip
// AlgoUnsupported represents an unsupported algorithm
AlgoUnsupported
)
// IntToAlgo takes an int value as input and returns the corresponding
// Algorithm
func IntToAlgo(a int) Algorithm {
switch a {
case 0:
return AlgoPronouncable
case 1:
return AlgoRandom
case 2:
return AlgoCoinFlip
default:
return AlgoUnsupported
}
}