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