Skip to content

Latest commit

 

History

History

generate

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Generate Module

ci go report codecov Deps PkgGoDev

Generation module based on Google UUID.

Installation

go get github.com/ankorstore/yokai/generate

Documentation

UUID V4

This module provides an UuidGenerator interface, allowing to generate UUIDs V4.

The DefaultUuidGenerator implementing it is based on Google UUID.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuid"
	uuidtest "github.com/ankorstore/yokai/generate/generatetest/uuid"
)

func main() {
	// default UUID generator
	generator := uuid.NewDefaultUuidGenerator()
	fmt.Printf("uuid: %s", generator.Generate()) // uuid: dcb5d8b3-4517-4957-a42c-604d11758561

	// test UUID generator (with deterministic value for testing)
	testGenerator := uuidtest.NewTestUuidGenerator("test")
	fmt.Printf("uuid: %s", testGenerator.Generate()) // uuid: test
}

The module also provides a UuidGeneratorFactory interface, to create the UuidGenerator instances.

The DefaultUuidGeneratorFactory generates DefaultUuidGenerator instances.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuid"
)

func main() {
	// default UUID generator factory
	generator := uuid.NewDefaultUuidGeneratorFactory().Create()
	fmt.Printf("uuid: %s", generator.Generate()) // uuid: dcb5d8b3-4517-4957-a42c-604d11758561
}

UUID V6

This module provides an UuidV6Generator interface, allowing to generate UUIDs V6.

The DefaultUuidV6Generator implementing it is based on Google UUID.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuidv6"
	uuidv6test "github.com/ankorstore/yokai/generate/generatetest/uuidv6"
)

func main() {
	// default UUID V6 generator
	generator := uuidv6.NewDefaultUuidV6Generator()
	uuid, _ := generator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 1efa5a1e-a679-67b7-ae79-f36f6749aa6b

	// test UUID generator (with deterministic value for testing, requires valid UUID v6)
	testGenerator, _ := uuidv6test.NewTestUuidV6Generator("1efa5a08-2883-6652-b357-5dd221ce0561")
    uuid, _ = testGenerator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 1efa5a08-2883-6652-b357-5dd221ce0561
}

The module also provides a UuidV6GeneratorFactory interface, to create the UuidV6Generator instances.

The DefaultUuidV6GeneratorFactory generates DefaultUuidV6Generator instances.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuidv6"
)

func main() {
	// default UUID generator factory
	generator := uuidv6.NewDefaultUuidV6GeneratorFactory().Create()
	uuid, _ := generator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 1efa5a1e-a679-67b7-ae79-f36f6749aa6b
}

UUID V7

This module provides an UuidV7Generator interface, allowing to generate UUIDs V7.

The DefaultUuidV7Generator implementing it is based on Google UUID.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuidv7"
	uuidv7test "github.com/ankorstore/yokai/generate/generatetest/uuidv7"
)

func main() {
	// default UUID V7 generator
	generator := uuidv7.NewDefaultUuidV7Generator()
	uuid, _ := generator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 018fdd68-1b41-7eb0-afad-57f45297c7c1

	// test UUID generator (with deterministic value for testing, requires valid UUID v7)
	testGenerator, _ := uuidv7test.NewTestUuidV7Generator("018fdd7d-1576-7a21-900e-1399637bd1a1")
    uuid, _ = testGenerator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 018fdd7d-1576-7a21-900e-1399637bd1a1
}

The module also provides a UuidV7GeneratorFactory interface, to create the UuidV7Generator instances.

The DefaultUuidV7GeneratorFactory generates DefaultUuidV7Generator instances.

package main

import (
	"fmt"

	"github.com/ankorstore/yokai/generate/uuidv7"
)

func main() {
	// default UUID generator factory
	generator := uuidv7.NewDefaultUuidV7GeneratorFactory().Create()
	uuid, _ := generator.Generate()
	fmt.Printf("uuid: %s", uuid.String()) // uuid: 018fdd68-1b41-7eb0-afad-57f45297c7c1
}