Data is a list of JSON testdata.
var Data = func() (entries []Entry) { fis := mustGet(fs.ReadDir(testdataFS, "_embed")) slices.SortFunc(fis, func(x, y fs.DirEntry) int { return strings.Compare(x.Name(), y.Name()) }) for _, fi := range fis { var entry Entry words := strings.Split(strings.TrimSuffix(fi.Name(), ".json.zst"), "_") for i := range words { words[i] = strings.Title(words[i]) } entry.Name = strings.Join(words, "") entry.Data = sync.OnceValue(func() []byte { filePath := path.Join("_embed", fi.Name()) b := mustGet(fs.ReadFile(testdataFS, filePath)) zr := zstd.NewReader(bytes.NewReader(b)) return mustGet(io.ReadAll(zr)) }) switch entry.Name { case "CanadaGeometry": entry.New = func() any { return new(canadaRoot) } case "CitmCatalog": entry.New = func() any { return new(citmRoot) } case "GolangSource": entry.New = func() any { return new(golangRoot) } case "StringEscaped": entry.New = func() any { return new(stringRoot) } case "StringUnicode": entry.New = func() any { return new(stringRoot) } case "SyntheaFhir": entry.New = func() any { return new(syntheaRoot) } case "TwitterStatus": entry.New = func() any { return new(twitterRoot) } } entries = append(entries, entry) } return entries }()
CaseName is a case name annotated with a file and line.
type CaseName struct {
Name string
Where CasePos
}
func Name(s string) (c CaseName)
Name annotates a case name with the file and line of the caller.
CasePos represents a file and line number.
type CasePos struct {
// contains filtered or unexported fields
}
func (pos CasePos) String() string
type Entry struct {
Name string
Data func() []byte
New func() any // nil if there is no concrete type for this
}