Documentation
¶
Overview ¶
Package nanoid provides fast and convenient unique string generator.
Index ¶
- Constants
- func Format(generateRandomBuffer BytesGenerator, alphabet string, size int) (string, error)
- func Generate(alphabet string, size int) (string, error)
- func Must(id string, err error) string
- func MustFormat(generateRandomBuffer BytesGenerator, alphabet string, size int) string
- func MustGenerate(alphabet string, size int) string
- func New() string
- type BytesGenerator
Examples ¶
Constants ¶
View Source
const ( // DefaultAlphabet is the default alphabet for Nano ID. DefaultAlphabet = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz" // DefaultSize is the default size for Nano ID. DefaultSize = 21 )
Variables ¶
This section is empty.
Functions ¶
func Format ¶
func Format(generateRandomBuffer BytesGenerator, alphabet string, size int) (string, error)
Format generates a random string based on BytesGenerator, alphabet and size.
Example ¶
package main import ( "crypto/rand" "fmt" "github.com/aidarkhanov/nanoid" ) func main() { alphabet := nanoid.DefaultAlphabet size := nanoid.DefaultSize // generateBytesBuffer returns random bytes buffer generateBytesBuffer := func(step int) ([]byte, error) { buffer := make([]byte, step) if _, err := rand.Read(buffer); err != nil { return nil, err } return buffer, nil } id, err := nanoid.Format(generateBytesBuffer, alphabet, size) if err != nil { panic(err) } fmt.Println(id) }
Output:
func Generate ¶
Generate generates a random string based on alphabet and size.
Example ¶
package main import ( "fmt" "github.com/aidarkhanov/nanoid" ) func main() { alphabet := nanoid.DefaultAlphabet size := nanoid.DefaultSize id, err := nanoid.Generate(alphabet, size) if err != nil { panic(err) } fmt.Println(id) }
Output:
func MustFormat ¶
func MustFormat(generateRandomBuffer BytesGenerator, alphabet string, size int) string
MustFormat is like Format but panics if a random string cannot be generated.
Example ¶
package main import ( "crypto/rand" "fmt" "github.com/aidarkhanov/nanoid" ) func main() { alphabet := nanoid.DefaultAlphabet size := nanoid.DefaultSize // generateBytesBuffer returns random bytes buffer generateBytesBuffer := func(step int) ([]byte, error) { buffer := make([]byte, step) if _, err := rand.Read(buffer); err != nil { return nil, err } return buffer, nil } id := nanoid.MustFormat(generateBytesBuffer, alphabet, size) fmt.Println(id) }
Output:
func MustGenerate ¶
MustGenerate is like Generate but panics if a random string cannot be generated.
Example ¶
package main import ( "fmt" "github.com/aidarkhanov/nanoid" ) func main() { alphabet := nanoid.DefaultAlphabet size := nanoid.DefaultSize id := nanoid.MustGenerate(alphabet, size) fmt.Println(id) }
Output:
Types ¶
type BytesGenerator ¶
BytesGenerator represents random bytes buffer.
Click to show internal directories.
Click to hide internal directories.