github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/doc/example.go (about) 1 // Copyright 2011 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // ファイルASTから例となる関数を抽出します。 6 7 package doc 8 9 import ( 10 "github.com/shogo82148/std/go/ast" 11 ) 12 13 // Example はテストソースファイル内で見つかった関数の例を表します。 14 type Example struct { 15 Name string 16 Suffix string 17 Doc string 18 Code ast.Node 19 Play *ast.File 20 Comments []*ast.CommentGroup 21 Output string 22 Unordered bool 23 EmptyOutput bool 24 Order int 25 } 26 27 // ExamplesはtestFilesで見つかった例を、Nameフィールドでソートして返します。 28 // Orderフィールドには、例が出現した順序が記録されます。 29 // Suffixフィールドは、Examplesが直接呼び出された場合は値が入りませんが、 30 // [NewFromFiles] によってtest.goファイルで見つかった例にのみ値が入ります。 31 // 32 // プレイ可能な例は、名前が"_test"で終わるパッケージにある必要があります。 33 // 例は、次のいずれかの場合に「プレイ可能」です(Playフィールドが非nilである場合): 34 // - 例の関数が自己完結している場合:関数は他のパッケージの識別子(または"int"などの予め宣言された識別子)のみを参照し、テストファイルにドットインポートが含まれていない。 35 // - テストファイル全体が例である場合:ファイルには正確に1つの例関数、テスト、fuzzテスト、またはベンチマーク関数が含まれ、例関数以外の少なくとも1つのトップレベル関数、型、変数、または定数宣言が存在する。 36 func Examples(testFiles ...*ast.File) []*Example