// compile // Copyright 2023 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 main type explainer struct { m map[string]string } func init() { RegisterExplainer(newExplainer()) } type Explainer interface { Name() string Map() map[string]string } func (e explainer) Name() string { return "HelloWorldExplainer" } func (e explainer) Map() map[string]string { return e.m } //go:noinline func newExplainer() explainer { m := make(map[string]string) m["Hello"] = "World!" return explainer{m} } var explainers = make(map[string]Explainer) func RegisterExplainer(e Explainer) { explainers[e.Name()] = e } func main() { }