| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /opt/golang/1.22.0/test/typeparam/issue48185b.dir/ |
| Current File : //opt/golang/1.22.0/test/typeparam/issue48185b.dir/a.go |
// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package a
import (
"reflect"
"sync"
)
type addressableValue struct{ reflect.Value }
type arshalers[Options, Coder any] struct {
fncVals []typedArshaler[Options, Coder]
fncCache sync.Map // map[reflect.Type]unmarshaler
}
type typedArshaler[Options, Coder any] struct {
typ reflect.Type
fnc func(Options, *Coder, addressableValue) error
}
type UnmarshalOptions1 struct {
// Unmarshalers is a list of type-specific unmarshalers to use.
Unmarshalers *arshalers[UnmarshalOptions1, Decoder1]
}
type Decoder1 struct {
}
func (a *arshalers[Options, Coder]) lookup(fnc func(Options, *Coder, addressableValue) error, t reflect.Type) func(Options, *Coder, addressableValue) error {
return fnc
}
func UnmarshalFuncV2[T any](fn func(UnmarshalOptions1, *Decoder1, T) error) *arshalers[UnmarshalOptions1, Decoder1] {
return &arshalers[UnmarshalOptions1, Decoder1]{}
}