Awesome Go

typeregistry

CategoryGenerators
SubcategoryGenerators
Stars0

A library to create type dynamically

About typeregistry

a library to create type dynamically

Report Build Status

how to use

// 1. define struct
type Student struct {
	Age  int
	Name string
}

// 2. add reflect type
key := AddType(new(Student))

// 3. create struct from registed key
student := Make(key)

custom registed key

var i interface{} = new(Student)

// use lowercase struct name as key
name := AddTypeWithKey(i, func(i interface{}) string {
	tpe := reflect.TypeOf(i).Elem()
	return strings.ToLower(tpe.Name())
})

student, ok := Create("student").(*Student)

benchmark

go.exe test -benchmem -run=^$ supperxin/typeregistry -bench ^BenchmarkMake$

goos: windows
goarch: amd64
pkg: supperxin/typeregistry
BenchmarkMake-8   	 8823256	       138 ns/op	      64 B/op	       2 allocs/op
PASS
ok  	supperxin/typeregistry	1.551s
go.exe test -benchmem -run=^$ supperxin/typeregistry -bench ^BenchmarkCreateDirectly$

goos: windows
goarch: amd64
pkg: supperxin/typeregistry
BenchmarkCreateDirectly-8   	1000000000	         0.593 ns/op	       0 B/op	       0 allocs/op
PASS
ok  	supperxin/typeregistry	0.857s

Frequently Asked Questions

What is typeregistry?

typeregistry is a Generators library for the Go programming language. A library to create type dynamically

How do I install typeregistry?

Install typeregistry with the Go module system using `go get xiaoxin01/typeregistry`. Check the repository for the current installation instructions.

What category does typeregistry belong to?

typeregistry is listed under Generators, specifically Generators.

← Back to Generators