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.