github.com/cloudwego/dynamicgo@v0.2.6-0.20240519101509-707f41b6b834/proto/README.md (about)

     1  <!-- Code generated by gomarkdoc. DO NOT EDIT -->
     2  
     3  # proto
     4  
     5  ```go
     6  import "github.com/cloudwego/dynamicgo/proto"
     7  ```
     8  
     9  ## Index
    10  
    11  - [proto](#proto)
    12    - [Index](#index)
    13    - [Variables](#variables)
    14    - [type EnumNumber](#type-enumnumber)
    15    - [type FieldDescriptor](#type-fielddescriptor)
    16      - [func (\*FieldDescriptor) IsList](#func-fielddescriptor-islist)
    17      - [func (\*FieldDescriptor) IsMap](#func-fielddescriptor-ismap)
    18      - [func (\*FieldDescriptor) JSONName](#func-fielddescriptor-jsonname)
    19      - [func (\*FieldDescriptor) Kind](#func-fielddescriptor-kind)
    20      - [func (\*FieldDescriptor) MapKey](#func-fielddescriptor-mapkey)
    21      - [func (\*FieldDescriptor) MapValue](#func-fielddescriptor-mapvalue)
    22      - [func (\*FieldDescriptor) Message](#func-fielddescriptor-message)
    23      - [func (\*FieldDescriptor) Name](#func-fielddescriptor-name)
    24      - [func (\*FieldDescriptor) Number](#func-fielddescriptor-number)
    25      - [func (\*FieldDescriptor) Type](#func-fielddescriptor-type)
    26    - [type FieldNameMap](#type-fieldnamemap)
    27      - [func (FieldNameMap) All](#func-fieldnamemap-all)
    28      - [func (\*FieldNameMap) Build](#func-fieldnamemap-build)
    29      - [func (FieldNameMap) Get](#func-fieldnamemap-get)
    30      - [func (\*FieldNameMap) Set](#func-fieldnamemap-set)
    31      - [func (FieldNameMap) Size](#func-fieldnamemap-size)
    32    - [type FieldNumber](#type-fieldnumber)
    33    - [type FieldNumberMap](#type-fieldnumbermap)
    34      - [func (FieldNumberMap) All](#func-fieldnumbermap-all)
    35      - [func (FieldNumberMap) Get](#func-fieldnumbermap-get)
    36      - [func (\*FieldNumberMap) Set](#func-fieldnumbermap-set)
    37      - [func (FieldNumberMap) Size](#func-fieldnumbermap-size)
    38    - [type MessageDescriptor](#type-messagedescriptor)
    39      - [func (\*MessageDescriptor) ByJSONName](#func-messagedescriptor-byjsonname)
    40      - [func (\*MessageDescriptor) ByName](#func-messagedescriptor-byname)
    41      - [func (\*MessageDescriptor) ByNumber](#func-messagedescriptor-bynumber)
    42      - [func (\*MessageDescriptor) FieldsCount](#func-messagedescriptor-fieldscount)
    43      - [func (\*MessageDescriptor) Name](#func-messagedescriptor-name)
    44    - [type MethodDescriptor](#type-methoddescriptor)
    45      - [func GetFnDescFromFile](#func-getfndescfromfile)
    46      - [func (\*MethodDescriptor) Input](#func-methoddescriptor-input)
    47      - [func (\*MethodDescriptor) Name](#func-methoddescriptor-name)
    48      - [func (\*MethodDescriptor) Output](#func-methoddescriptor-output)
    49    - [type Number](#type-number)
    50    - [type Options](#type-options)
    51      - [func NewDefaultOptions](#func-newdefaultoptions)
    52      - [func (Options) NewDesccriptorFromContent](#func-options-newdesccriptorfromcontent)
    53      - [func (Options) NewDescriptorFromPath](#func-options-newdescriptorfrompath)
    54    - [type ParseTarget](#type-parsetarget)
    55    - [type ProtoKind](#type-protokind)
    56    - [type ServiceDescriptor](#type-servicedescriptor)
    57      - [func NewDescritorFromContent](#func-newdescritorfromcontent)
    58      - [func NewDescritorFromPath](#func-newdescritorfrompath)
    59      - [func (\*ServiceDescriptor) LookupMethodByName](#func-servicedescriptor-lookupmethodbyname)
    60      - [func (\*ServiceDescriptor) Methods](#func-servicedescriptor-methods)
    61      - [func (\*ServiceDescriptor) Name](#func-servicedescriptor-name)
    62    - [type Type](#type-type)
    63      - [func FromProtoKindToType](#func-fromprotokindtotype)
    64      - [func (Type) IsComplex](#func-type-iscomplex)
    65      - [func (Type) IsInt](#func-type-isint)
    66      - [func (Type) IsPacked](#func-type-ispacked)
    67      - [func (Type) IsUint](#func-type-isuint)
    68      - [func (Type) NeedVarint](#func-type-needvarint)
    69      - [func (Type) String](#func-type-string)
    70      - [func (Type) TypeToKind](#func-type-typetokind)
    71      - [func (Type) Valid](#func-type-valid)
    72    - [type TypeDescriptor](#type-typedescriptor)
    73      - [func FnRequest](#func-fnrequest)
    74      - [func FnResponse](#func-fnresponse)
    75      - [func (\*TypeDescriptor) BaseId](#func-typedescriptor-baseid)
    76      - [func (\*TypeDescriptor) Elem](#func-typedescriptor-elem)
    77      - [func (\*TypeDescriptor) IsList](#func-typedescriptor-islist)
    78      - [func (\*TypeDescriptor) IsMap](#func-typedescriptor-ismap)
    79      - [func (\*TypeDescriptor) IsPacked](#func-typedescriptor-ispacked)
    80      - [func (\*TypeDescriptor) Key](#func-typedescriptor-key)
    81      - [func (\*TypeDescriptor) Message](#func-typedescriptor-message)
    82      - [func (\*TypeDescriptor) Name](#func-typedescriptor-name)
    83      - [func (\*TypeDescriptor) Type](#func-typedescriptor-type)
    84      - [func (\*TypeDescriptor) WireType](#func-typedescriptor-wiretype)
    85    - [type WireType](#type-wiretype)
    86      - [func (WireType) String](#func-wiretype-string)
    87  
    88  
    89  ## Variables
    90  
    91  <a name="Kind2Wire"></a>map from proto.ProtoKind to proto.WireType
    92  
    93  ```go
    94  var Kind2Wire = map[ProtoKind]WireType{
    95      BoolKind:     VarintType,
    96      EnumKind:     VarintType,
    97      Int32Kind:    VarintType,
    98      Sint32Kind:   VarintType,
    99      Uint32Kind:   VarintType,
   100      Int64Kind:    VarintType,
   101      Sint64Kind:   VarintType,
   102      Uint64Kind:   VarintType,
   103      Sfixed32Kind: Fixed32Type,
   104      Fixed32Kind:  Fixed32Type,
   105      FloatKind:    Fixed32Type,
   106      Sfixed64Kind: Fixed64Type,
   107      Fixed64Kind:  Fixed64Type,
   108      DoubleKind:   Fixed64Type,
   109      StringKind:   BytesType,
   110      BytesKind:    BytesType,
   111      MessageKind:  BytesType,
   112      GroupKind:    StartGroupType,
   113  }
   114  ```
   115  
   116  <a name="EnumNumber"></a>
   117  ## type [EnumNumber](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L225>)
   118  
   119  
   120  
   121  ```go
   122  type EnumNumber int32
   123  ```
   124  
   125  <a name="FieldDescriptor"></a>
   126  ## type [FieldDescriptor](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L56-L62>)
   127  
   128  
   129  
   130  ```go
   131  type FieldDescriptor struct {
   132      // contains filtered or unexported fields
   133  }
   134  ```
   135  
   136  <a name="FieldDescriptor.IsList"></a>
   137  ### func (*FieldDescriptor) [IsList](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L109>)
   138  
   139  ```go
   140  func (f *FieldDescriptor) IsList() bool
   141  ```
   142  
   143  
   144  
   145  <a name="FieldDescriptor.IsMap"></a>
   146  ### func (*FieldDescriptor) [IsMap](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L105>)
   147  
   148  ```go
   149  func (f *FieldDescriptor) IsMap() bool
   150  ```
   151  
   152  
   153  
   154  <a name="FieldDescriptor.JSONName"></a>
   155  ### func (*FieldDescriptor) [JSONName](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L76>)
   156  
   157  ```go
   158  func (f *FieldDescriptor) JSONName() string
   159  ```
   160  
   161  
   162  
   163  <a name="FieldDescriptor.Kind"></a>
   164  ### func (*FieldDescriptor) [Kind](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L68>)
   165  
   166  ```go
   167  func (f *FieldDescriptor) Kind() ProtoKind
   168  ```
   169  
   170  
   171  
   172  <a name="FieldDescriptor.MapKey"></a>
   173  ### func (*FieldDescriptor) [MapKey](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L91>)
   174  
   175  ```go
   176  func (f *FieldDescriptor) MapKey() *TypeDescriptor
   177  ```
   178  
   179  
   180  
   181  <a name="FieldDescriptor.MapValue"></a>
   182  ### func (*FieldDescriptor) [MapValue](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L98>)
   183  
   184  ```go
   185  func (f *FieldDescriptor) MapValue() *TypeDescriptor
   186  ```
   187  
   188  
   189  
   190  <a name="FieldDescriptor.Message"></a>
   191  ### func (*FieldDescriptor) [Message](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L87>)
   192  
   193  ```go
   194  func (f *FieldDescriptor) Message() *MessageDescriptor
   195  ```
   196  
   197  when List+Message it can get message element descriptor when Map it can get map key-value entry massage descriptor when Message it can get sub message descriptor
   198  
   199  <a name="FieldDescriptor.Name"></a>
   200  ### func (*FieldDescriptor) [Name](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L72>)
   201  
   202  ```go
   203  func (f *FieldDescriptor) Name() string
   204  ```
   205  
   206  
   207  
   208  <a name="FieldDescriptor.Number"></a>
   209  ### func (*FieldDescriptor) [Number](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L64>)
   210  
   211  ```go
   212  func (f *FieldDescriptor) Number() FieldNumber
   213  ```
   214  
   215  
   216  
   217  <a name="FieldDescriptor.Type"></a>
   218  ### func (*FieldDescriptor) [Type](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L80>)
   219  
   220  ```go
   221  func (f *FieldDescriptor) Type() *TypeDescriptor
   222  ```
   223  
   224  
   225  
   226  <a name="FieldNameMap"></a>
   227  ## type [FieldNameMap](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L18-L23>)
   228  
   229  FieldNameMap is a map for field name and field descriptor
   230  
   231  ```go
   232  type FieldNameMap struct {
   233      // contains filtered or unexported fields
   234  }
   235  ```
   236  
   237  <a name="FieldNameMap.All"></a>
   238  ### func (FieldNameMap) [All](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L52>)
   239  
   240  ```go
   241  func (ft FieldNameMap) All() []*FieldDescriptor
   242  ```
   243  
   244  All returns all field descriptors
   245  
   246  <a name="FieldNameMap.Build"></a>
   247  ### func (*FieldNameMap) [Build](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L67>)
   248  
   249  ```go
   250  func (ft *FieldNameMap) Build()
   251  ```
   252  
   253  Build builds the map. It will try to build a trie tree if the dispersion of keys is higher enough (min).
   254  
   255  <a name="FieldNameMap.Get"></a>
   256  ### func (FieldNameMap) [Get](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L42>)
   257  
   258  ```go
   259  func (ft FieldNameMap) Get(k string) *FieldDescriptor
   260  ```
   261  
   262  Get gets the field descriptor for the given key
   263  
   264  <a name="FieldNameMap.Set"></a>
   265  ### func (*FieldNameMap) [Set](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L26>)
   266  
   267  ```go
   268  func (ft *FieldNameMap) Set(key string, field *FieldDescriptor) (exist bool)
   269  ```
   270  
   271  Set sets the field descriptor for the given key
   272  
   273  <a name="FieldNameMap.Size"></a>
   274  ### func (FieldNameMap) [Size](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L57>)
   275  
   276  ```go
   277  func (ft FieldNameMap) Size() int
   278  ```
   279  
   280  Size returns the size of the map
   281  
   282  <a name="FieldNumber"></a>
   283  ## type [FieldNumber](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L224>)
   284  
   285  
   286  
   287  ```go
   288  type FieldNumber int32
   289  ```
   290  
   291  <a name="MinValidNumber"></a>reserved field number min-max ranges in a proto message
   292  
   293  ```go
   294  const (
   295      MinValidNumber        FieldNumber = 1
   296      FirstReservedNumber   FieldNumber = 19000
   297      LastReservedNumber    FieldNumber = 19999
   298      MaxValidNumber        FieldNumber = 1<<29 - 1
   299      DefaultRecursionLimit             = 10000
   300  )
   301  ```
   302  
   303  <a name="FieldNumberMap"></a>
   304  ## type [FieldNumberMap](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L149-L152>)
   305  
   306  FieldIDMap is a map from field id to field descriptor
   307  
   308  ```go
   309  type FieldNumberMap struct {
   310      // contains filtered or unexported fields
   311  }
   312  ```
   313  
   314  <a name="FieldNumberMap.All"></a>
   315  ### func (FieldNumberMap) [All](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L155>)
   316  
   317  ```go
   318  func (fd FieldNumberMap) All() (ret []*FieldDescriptor)
   319  ```
   320  
   321  All returns all field descriptors
   322  
   323  <a name="FieldNumberMap.Get"></a>
   324  ### func (FieldNumberMap) [Get](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L165>)
   325  
   326  ```go
   327  func (fd FieldNumberMap) Get(id FieldNumber) *FieldDescriptor
   328  ```
   329  
   330  Get gets the field descriptor for the given id
   331  
   332  <a name="FieldNumberMap.Set"></a>
   333  ### func (*FieldNumberMap) [Set](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L173>)
   334  
   335  ```go
   336  func (fd *FieldNumberMap) Set(id FieldNumber, f *FieldDescriptor)
   337  ```
   338  
   339  Set sets the field descriptor for the given id
   340  
   341  <a name="FieldNumberMap.Size"></a>
   342  ### func (FieldNumberMap) [Size](<https://github.com/khan-yin/dynamicgo/blob/main/proto/utils.go#L160>)
   343  
   344  ```go
   345  func (fd FieldNumberMap) Size() int
   346  ```
   347  
   348  Size returns the size of the map
   349  
   350  <a name="MessageDescriptor"></a>
   351  ## type [MessageDescriptor](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L113-L121>)
   352  
   353  
   354  
   355  ```go
   356  type MessageDescriptor struct {
   357      // contains filtered or unexported fields
   358  }
   359  ```
   360  
   361  <a name="MessageDescriptor.ByJSONName"></a>
   362  ### func (*MessageDescriptor) [ByJSONName](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L127>)
   363  
   364  ```go
   365  func (m *MessageDescriptor) ByJSONName(name string) *FieldDescriptor
   366  ```
   367  
   368  
   369  
   370  <a name="MessageDescriptor.ByName"></a>
   371  ### func (*MessageDescriptor) [ByName](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L131>)
   372  
   373  ```go
   374  func (m *MessageDescriptor) ByName(name string) *FieldDescriptor
   375  ```
   376  
   377  
   378  
   379  <a name="MessageDescriptor.ByNumber"></a>
   380  ### func (*MessageDescriptor) [ByNumber](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L135>)
   381  
   382  ```go
   383  func (m *MessageDescriptor) ByNumber(id FieldNumber) *FieldDescriptor
   384  ```
   385  
   386  
   387  
   388  <a name="MessageDescriptor.FieldsCount"></a>
   389  ### func (*MessageDescriptor) [FieldsCount](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L139>)
   390  
   391  ```go
   392  func (m *MessageDescriptor) FieldsCount() int
   393  ```
   394  
   395  
   396  
   397  <a name="MessageDescriptor.Name"></a>
   398  ### func (*MessageDescriptor) [Name](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L123>)
   399  
   400  ```go
   401  func (m *MessageDescriptor) Name() string
   402  ```
   403  
   404  
   405  
   406  <a name="MethodDescriptor"></a>
   407  ## type [MethodDescriptor](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L143-L147>)
   408  
   409  
   410  
   411  ```go
   412  type MethodDescriptor struct {
   413      // contains filtered or unexported fields
   414  }
   415  ```
   416  
   417  <a name="GetFnDescFromFile"></a>
   418  ### func [GetFnDescFromFile](<https://github.com/khan-yin/dynamicgo/blob/main/proto/test_util.go#L12>)
   419  
   420  ```go
   421  func GetFnDescFromFile(filePath, fnName string, opts Options, includeDirs ...string) *MethodDescriptor
   422  ```
   423  
   424  GetFnDescFromFile get a fucntion descriptor from idl path (relative to your git root) and the function name
   425  
   426  <a name="MethodDescriptor.Input"></a>
   427  ### func (*MethodDescriptor) [Input](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L153>)
   428  
   429  ```go
   430  func (m *MethodDescriptor) Input() *TypeDescriptor
   431  ```
   432  
   433  
   434  
   435  <a name="MethodDescriptor.Name"></a>
   436  ### func (*MethodDescriptor) [Name](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L149>)
   437  
   438  ```go
   439  func (m *MethodDescriptor) Name() string
   440  ```
   441  
   442  
   443  
   444  <a name="MethodDescriptor.Output"></a>
   445  ### func (*MethodDescriptor) [Output](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L157>)
   446  
   447  ```go
   448  func (m *MethodDescriptor) Output() *TypeDescriptor
   449  ```
   450  
   451  
   452  
   453  <a name="Number"></a>
   454  ## type [Number](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L222>)
   455  
   456  define Number = protowire.Number (int32)
   457  
   458  ```go
   459  type Number = protowire.Number
   460  ```
   461  
   462  <a name="Options"></a>
   463  ## type [Options](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L31-L48>)
   464  
   465  Options is options for parsing thrift IDL.
   466  
   467  ```go
   468  type Options struct {
   469      // ParseServiceMode indicates how to parse service.
   470      ParseServiceMode meta.ParseServiceMode
   471  
   472      MapFieldWay meta.MapFieldWay // not implemented.
   473  
   474      ParseFieldRandomRate float64 // not implemented.
   475  
   476      ParseEnumAsInt64 bool // not implemented.
   477  
   478      SetOptionalBitmap bool // not implemented.
   479  
   480      UseDefaultValue bool // not implemented.
   481  
   482      ParseFunctionMode meta.ParseFunctionMode // not implemented.
   483  
   484      EnableProtoBase bool // not implemented.
   485  }
   486  ```
   487  
   488  <a name="NewDefaultOptions"></a>
   489  ### func [NewDefaultOptions](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L51>)
   490  
   491  ```go
   492  func NewDefaultOptions() Options
   493  ```
   494  
   495  NewDefaultOptions creates a default Options.
   496  
   497  <a name="Options.NewDesccriptorFromContent"></a>
   498  ### func (Options) [NewDesccriptorFromContent](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L85>)
   499  
   500  ```go
   501  func (opts Options) NewDesccriptorFromContent(ctx context.Context, path, content string, includes map[string]string, importDirs ...string) (*ServiceDescriptor, error)
   502  ```
   503  
   504  
   505  
   506  <a name="Options.NewDescriptorFromPath"></a>
   507  ### func (Options) [NewDescriptorFromPath](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L62>)
   508  
   509  ```go
   510  func (opts Options) NewDescriptorFromPath(ctx context.Context, path string, importDirs ...string) (*ServiceDescriptor, error)
   511  ```
   512  
   513  NewDescritorFromContent creates a ServiceDescriptor from a proto path and its imports, which uses the given options. The importDirs is used to find the include files.
   514  
   515  <a name="ParseTarget"></a>
   516  ## type [ParseTarget](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L28>)
   517  
   518  ParseTarget indicates the target to parse
   519  
   520  ```go
   521  type ParseTarget uint8
   522  ```
   523  
   524  <a name="Request"></a>
   525  
   526  ```go
   527  const (
   528      Request ParseTarget = iota
   529      Response
   530      Exception
   531  )
   532  ```
   533  
   534  <a name="ProtoKind"></a>
   535  ## type [ProtoKind](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L41>)
   536  
   537  define ProtoKind = protoreflect.Kind (int8)
   538  
   539  ```go
   540  type ProtoKind = protoreflect.Kind
   541  ```
   542  
   543  <a name="DoubleKind"></a>
   544  
   545  ```go
   546  const (
   547      DoubleKind ProtoKind = iota + 1
   548      FloatKind
   549      Int64Kind
   550      Uint64Kind
   551      Int32Kind
   552      Fixed64Kind
   553      Fixed32Kind
   554      BoolKind
   555      StringKind
   556      GroupKind
   557      MessageKind
   558      BytesKind
   559      Uint32Kind
   560      EnumKind
   561      Sfixed32Kind
   562      Sfixed64Kind
   563      Sint32Kind
   564      Sint64Kind
   565  )
   566  ```
   567  
   568  <a name="ServiceDescriptor"></a>
   569  ## type [ServiceDescriptor](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L161-L164>)
   570  
   571  
   572  
   573  ```go
   574  type ServiceDescriptor struct {
   575      // contains filtered or unexported fields
   576  }
   577  ```
   578  
   579  <a name="NewDescritorFromContent"></a>
   580  ### func [NewDescritorFromContent](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L81>)
   581  
   582  ```go
   583  func NewDescritorFromContent(ctx context.Context, path, content string, includes map[string]string, importDirs ...string) (*ServiceDescriptor, error)
   584  ```
   585  
   586  NewDescritorFromContent behaviors like NewDescritorFromPath, besides it uses DefaultOptions.
   587  
   588  <a name="NewDescritorFromPath"></a>
   589  ### func [NewDescritorFromPath](<https://github.com/khan-yin/dynamicgo/blob/main/proto/idl.go#L56>)
   590  
   591  ```go
   592  func NewDescritorFromPath(ctx context.Context, path string, importDirs ...string) (*ServiceDescriptor, error)
   593  ```
   594  
   595  NewDescritorFromPath behaviors like NewDescritorFromPath, besides it uses DefaultOptions.
   596  
   597  <a name="ServiceDescriptor.LookupMethodByName"></a>
   598  ### func (*ServiceDescriptor) [LookupMethodByName](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L174>)
   599  
   600  ```go
   601  func (s *ServiceDescriptor) LookupMethodByName(name string) *MethodDescriptor
   602  ```
   603  
   604  
   605  
   606  <a name="ServiceDescriptor.Methods"></a>
   607  ### func (*ServiceDescriptor) [Methods](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L170>)
   608  
   609  ```go
   610  func (s *ServiceDescriptor) Methods() map[string]*MethodDescriptor
   611  ```
   612  
   613  
   614  
   615  <a name="ServiceDescriptor.Name"></a>
   616  ### func (*ServiceDescriptor) [Name](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L166>)
   617  
   618  ```go
   619  func (s *ServiceDescriptor) Name() string
   620  ```
   621  
   622  
   623  
   624  <a name="Type"></a>
   625  ## type [Type](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L87>)
   626  
   627  Node type (uint8) mapping ProtoKind the same value, except for UNKNOWN, LIST, MAP, ERROR
   628  
   629  ```go
   630  type Type uint8
   631  ```
   632  
   633  <a name="UNKNOWN"></a>
   634  
   635  ```go
   636  const (
   637      UNKNOWN Type = 0 // unknown field type
   638      DOUBLE  Type = 1
   639      FLOAT   Type = 2
   640      INT64   Type = 3
   641      UINT64  Type = 4
   642      INT32   Type = 5
   643      FIX64   Type = 6
   644      FIX32   Type = 7
   645      BOOL    Type = 8
   646      STRING  Type = 9
   647      GROUP   Type = 10 // deprecated
   648      MESSAGE Type = 11
   649      BYTE    Type = 12
   650      UINT32  Type = 13
   651      ENUM    Type = 14
   652      SFIX32  Type = 15
   653      SFIX64  Type = 16
   654      SINT32  Type = 17
   655      SINT64  Type = 18
   656      LIST    Type = 19
   657      MAP     Type = 20
   658      ERROR   Type = 255
   659  )
   660  ```
   661  
   662  <a name="FromProtoKindToType"></a>
   663  ### func [FromProtoKindToType](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L137>)
   664  
   665  ```go
   666  func FromProtoKindToType(kind ProtoKind, isList bool, isMap bool) Type
   667  ```
   668  
   669  FromProtoKindTType converts ProtoKind to Type
   670  
   671  <a name="Type.IsComplex"></a>
   672  ### func (Type) [IsComplex](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L169>)
   673  
   674  ```go
   675  func (p Type) IsComplex() bool
   676  ```
   677  
   678  IsComplex tells if the type is one of STRUCT, MAP, SET, LIST
   679  
   680  <a name="Type.IsInt"></a>
   681  ### func (Type) [IsInt](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L160>)
   682  
   683  ```go
   684  func (p Type) IsInt() bool
   685  ```
   686  
   687  IsInt containing isUint
   688  
   689  <a name="Type.IsPacked"></a>
   690  ### func (Type) [IsPacked](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L152>)
   691  
   692  ```go
   693  func (p Type) IsPacked() bool
   694  ```
   695  
   696  
   697  
   698  <a name="Type.IsUint"></a>
   699  ### func (Type) [IsUint](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L164>)
   700  
   701  ```go
   702  func (p Type) IsUint() bool
   703  ```
   704  
   705  
   706  
   707  <a name="Type.NeedVarint"></a>
   708  ### func (Type) [NeedVarint](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L148>)
   709  
   710  ```go
   711  func (p Type) NeedVarint() bool
   712  ```
   713  
   714  check if the type need Varint encoding
   715  
   716  <a name="Type.String"></a>
   717  ### func (Type) [String](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L174>)
   718  
   719  ```go
   720  func (p Type) String() string
   721  ```
   722  
   723  String for format and print
   724  
   725  <a name="Type.TypeToKind"></a>
   726  ### func (Type) [TypeToKind](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L124>)
   727  
   728  ```go
   729  func (p Type) TypeToKind() ProtoKind
   730  ```
   731  
   732  
   733  
   734  <a name="Type.Valid"></a>
   735  ### func (Type) [Valid](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L114>)
   736  
   737  ```go
   738  func (p Type) Valid() bool
   739  ```
   740  
   741  
   742  
   743  <a name="TypeDescriptor"></a>
   744  ## type [TypeDescriptor](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L3-L10>)
   745  
   746  
   747  
   748  ```go
   749  type TypeDescriptor struct {
   750      // contains filtered or unexported fields
   751  }
   752  ```
   753  
   754  <a name="FnRequest"></a>
   755  ### func [FnRequest](<https://github.com/khan-yin/dynamicgo/blob/main/proto/test_util.go#L25>)
   756  
   757  ```go
   758  func FnRequest(fn *MethodDescriptor) *TypeDescriptor
   759  ```
   760  
   761  FnRequest get the normal requestDescriptor
   762  
   763  <a name="FnResponse"></a>
   764  ### func [FnResponse](<https://github.com/khan-yin/dynamicgo/blob/main/proto/test_util.go#L34>)
   765  
   766  ```go
   767  func FnResponse(fn *MethodDescriptor) *TypeDescriptor
   768  ```
   769  
   770  FnResponse get hte normal responseDescriptor
   771  
   772  <a name="TypeDescriptor.BaseId"></a>
   773  ### func (*TypeDescriptor) [BaseId](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L28>)
   774  
   775  ```go
   776  func (t *TypeDescriptor) BaseId() FieldNumber
   777  ```
   778  
   779  
   780  
   781  <a name="TypeDescriptor.Elem"></a>
   782  ### func (*TypeDescriptor) [Elem](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L20>)
   783  
   784  ```go
   785  func (t *TypeDescriptor) Elem() *TypeDescriptor
   786  ```
   787  
   788  
   789  
   790  <a name="TypeDescriptor.IsList"></a>
   791  ### func (*TypeDescriptor) [IsList](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L43>)
   792  
   793  ```go
   794  func (f *TypeDescriptor) IsList() bool
   795  ```
   796  
   797  
   798  
   799  <a name="TypeDescriptor.IsMap"></a>
   800  ### func (*TypeDescriptor) [IsMap](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L39>)
   801  
   802  ```go
   803  func (f *TypeDescriptor) IsMap() bool
   804  ```
   805  
   806  
   807  
   808  <a name="TypeDescriptor.IsPacked"></a>
   809  ### func (*TypeDescriptor) [IsPacked](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L32>)
   810  
   811  ```go
   812  func (t *TypeDescriptor) IsPacked() bool
   813  ```
   814  
   815  
   816  
   817  <a name="TypeDescriptor.Key"></a>
   818  ### func (*TypeDescriptor) [Key](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L16>)
   819  
   820  ```go
   821  func (t *TypeDescriptor) Key() *TypeDescriptor
   822  ```
   823  
   824  
   825  
   826  <a name="TypeDescriptor.Message"></a>
   827  ### func (*TypeDescriptor) [Message](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L24>)
   828  
   829  ```go
   830  func (t *TypeDescriptor) Message() *MessageDescriptor
   831  ```
   832  
   833  
   834  
   835  <a name="TypeDescriptor.Name"></a>
   836  ### func (*TypeDescriptor) [Name](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L52>)
   837  
   838  ```go
   839  func (f *TypeDescriptor) Name() string
   840  ```
   841  
   842  
   843  
   844  <a name="TypeDescriptor.Type"></a>
   845  ### func (*TypeDescriptor) [Type](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L12>)
   846  
   847  ```go
   848  func (t *TypeDescriptor) Type() Type
   849  ```
   850  
   851  
   852  
   853  <a name="TypeDescriptor.WireType"></a>
   854  ### func (*TypeDescriptor) [WireType](<https://github.com/khan-yin/dynamicgo/blob/main/proto/descriptor.go#L47>)
   855  
   856  ```go
   857  func (f *TypeDescriptor) WireType() WireType
   858  ```
   859  
   860  
   861  
   862  <a name="WireType"></a>
   863  ## type [WireType](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L10>)
   864  
   865  protobuf encoding wire type
   866  
   867  ```go
   868  type WireType int8
   869  ```
   870  
   871  <a name="VarintType"></a>
   872  
   873  ```go
   874  const (
   875      VarintType     WireType = 0
   876      Fixed32Type    WireType = 5
   877      Fixed64Type    WireType = 1
   878      BytesType      WireType = 2
   879      StartGroupType WireType = 3 // deprecated
   880      EndGroupType   WireType = 4 // deprecated
   881  )
   882  ```
   883  
   884  <a name="WireType.String"></a>
   885  ### func (WireType) [String](<https://github.com/khan-yin/dynamicgo/blob/main/proto/type.go#L21>)
   886  
   887  ```go
   888  func (p WireType) String() string
   889  ```
   890  
   891  
   892  
   893  Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>)