func UUIDHyphenated() string {
	return singleFakeData(HyphenatedID, func() interface{} {
		u := UUID{}
		res, _ := u.hyphenated()
		return res
	}).(string)
}
UUIDHyphenated get fake Hyphenated UUID
package faker
import (
	"crypto/rand"
	"fmt"
	"io"
	"reflect"
)
var identifier Identifier
func GetIdentifier() Identifier {
	mu.Lock()
	defer mu.Unlock()
	if identifier == nil {
		identifier = &UUID{}
	}
	return identifier
}
type Identifier interface {
	Digit(v reflect.Value) (interface{}, error)
	Hyphenated(v reflect.Value) (interface{}, error)
}
type UUID struct{}
func createUUID() ([]byte, error) {
	b := make([]byte, 16)
	_, err := io.ReadFull(rand.Reader, b)
	if err != nil {
		return b, err
	}
	b[8] = b[8]&^0xc0 | 0x80
	b[6] = b[6]&^0xf0 | 0x40
	return b, nil
}
func (u UUID) hyphenated() (string, error) {
	b, err := createUUID()
	if err != nil {
		return "", err
	}
	uuid := fmt.Sprintf("%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
	return uuid, err
}
func (u UUID) Hyphenated(v reflect.Value) (interface{}, error) {
	return u.hyphenated()
}