all repos — vite @ e5847755b6b81d288ecb9b15efdb66fdafcf629f

a fast (this time, actually) and minimal static site generator

atom/uuid.go (view raw)

 1package atom
 2
 3import (
 4	"crypto/rand"
 5	"fmt"
 6)
 7
 8type UUID [16]byte
 9
10// Create a new uuid v4
11func NewUUID() *UUID {
12	u := &UUID{}
13	_, err := rand.Read(u[:16])
14	if err != nil {
15		panic(err)
16	}
17
18	u[8] = (u[8] | 0x80) & 0xBf
19	u[6] = (u[6] | 0x40) & 0x4f
20	return u
21}
22
23func (u *UUID) String() string {
24	return fmt.Sprintf("%x-%x-%x-%x-%x", u[:4], u[4:6], u[6:8], u[8:10], u[10:])
25}