func New()

in internal/typeregistry/typeregistry.go [47:64]


func New() *TypeRegistry {
	registry := TypeRegistry{
		fqnToType:          make(map[api.FQN]registeredType),
		fqnToEnumMember:    make(map[string]interface{}),
		typeToEnumFQN:      make(map[reflect.Type]api.FQN),
		typeToInterfaceFQN: make(map[reflect.Type]api.FQN),
		structInfo:         make(map[reflect.Type]registeredStruct),
		proxyMakers:        make(map[reflect.Type]func() interface{}),
		typeMembers:        make(map[api.FQN][]api.Override),
	}

	// Ensure we can initialize proxies for `interface{}` when a method returns `any`.
	registry.proxyMakers[reflect.TypeOf((*interface{})(nil)).Elem()] = func() interface{} {
		return &anonymousProxy{}
	}

	return &registry
}