Popularity
0.9
Growing
Activity
0.0
Declining
9
1
0

Programming language: Go
License: MIT License
Latest version: v0.1.0

typeregistry alternatives and similar packages

Based on the "Generation and Generics" category.
Alternatively, view typeregistry alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of typeregistry or a related project?

Add another 'Generation and Generics' Package

README

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