github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/encoding/gob/type.go (about)

     1  // Copyright 2009 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  package gob
     6  
     7  // CommonTypeはすべての型の要素を保持します。
     8  // これは歴史的な遺物であり、バイナリ互換性を保つため、および型記述子のエンコーディングのために
     9  // パッケージが利用するためだけに保持されています。クライアントによる直接的な使用は意図されていません。
    10  type CommonType struct {
    11  	Name string
    12  	Id   typeId
    13  }
    14  
    15  // GobEncoderは、GobDecoderに送信するための値のエンコーディング表現を提供するデータを
    16  // 描写するインターフェースです。GobEncoderとGobDecoderを実装する型は、そのデータの表現に
    17  // 完全な制御を持つため、通常はgobストリームで送信できないプライベートフィールド、チャネル、
    18  // 関数などを含むことができます。
    19  //
    20  // 注意: gobsは永続的に保存できるため、ソフトウェアが進化するにつれてGobEncoderによって
    21  // 使用されるエンコーディングが安定していることを保証することは良い設計です。例えば、GobEncodeが
    22  // エンコーディングにバージョン番号を含めることは理にかなっているかもしれません。
    23  type GobEncoder interface {
    24  	GobEncode() ([]byte, error)
    25  }
    26  
    27  // GobDecoderは、GobEncoderによって送信された値のデコーディングルーチンを提供するデータを
    28  // 描写するインターフェースです。
    29  type GobDecoder interface {
    30  	GobDecode([]byte) error
    31  }
    32  
    33  // RegisterNameは [Register] と同様ですが、型のデフォルトではなく提供された名前を使用します。
    34  func RegisterName(name string, value any)
    35  
    36  // Registerは、その型の値によって識別される型を、
    37  // 内部型名の下に記録します。その名前は、インターフェース変数として送受信される値の
    38  // 具体的な型を識別します。インターフェース値の実装として転送される型のみを登録する必要があります。
    39  // 初期化時にのみ使用されることを期待しており、型と名前の間のマッピングが全単射でない場合はパニックを引き起こします。
    40  func Register(value any)