blob: ca4b6d932163b45eada0e2eb291961dfb56cfce8 [file] [log] [blame]
// 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 p
type Fooer interface {
Foo()
}
type Fooable[F Fooer] struct {
ptr F
}
func (f *Fooable[F]) Adapter() *Fooable[*FooerImpl[F]] {
return &Fooable[*FooerImpl[F]]{&FooerImpl[F]{}}
}
type FooerImpl[F Fooer] struct {
}
func (fi *FooerImpl[F]) Foo() {}