before adding cryptoshuffler
This commit is contained in:
@@ -1,5 +1,42 @@
|
||||
package pwgenerator
|
||||
|
||||
/*
|
||||
Has returns true if a CharSet contains char.
|
||||
|
||||
char can be one of: Char, byte, rune, or a string (of length 1).
|
||||
*/
|
||||
func (c *CharSet) Has(char interface{}) (contains bool, err error) {
|
||||
|
||||
var chkChar Char
|
||||
|
||||
switch t := char.(type) {
|
||||
case Char:
|
||||
chkChar = t
|
||||
case byte:
|
||||
chkChar = Char(t)
|
||||
case rune:
|
||||
chkChar = Char(t)
|
||||
case string:
|
||||
if len(t) != 1 {
|
||||
err = ErrBadType
|
||||
return
|
||||
}
|
||||
chkChar = Char(t[0])
|
||||
default:
|
||||
err = ErrBadType
|
||||
return
|
||||
}
|
||||
|
||||
for _, i := range *c {
|
||||
if chkChar == i {
|
||||
contains = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Len returns the length of a CharSet (needed for sort.Interface).
|
||||
func (c *CharSet) Len() (l int) {
|
||||
|
||||
@@ -23,7 +60,7 @@ func (c *CharSet) RandChar() (char Char, err error) {
|
||||
|
||||
var selectIdx int
|
||||
|
||||
if selectIdx, err = saferRandInt(len(*c) - 1); err != nil {
|
||||
if selectIdx, err = saferRandInt(len(*c)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user