github.com/goplus/reflectx@v1.2.2/README.md (about)

     1  # reflectx
     2  Golang reflect package hack tools
     3  
     4  [![Go1.14](https://github.com/goplus/reflectx/workflows/Go1.14/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go114.yml)
     5  [![Go1.15](https://github.com/goplus/reflectx/workflows/Go1.15/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go115.yml)
     6  [![Go1.16](https://github.com/goplus/reflectx/workflows/Go1.16/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go116.yml)
     7  [![Go1.17](https://github.com/goplus/reflectx/workflows/Go1.17/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go117.yml)
     8  [![Go1.18](https://github.com/goplus/reflectx/workflows/Go1.18/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go118.yml)
     9  [![Go1.19](https://github.com/goplus/reflectx/workflows/Go1.19/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go119.yml)
    10  [![Go1.20](https://github.com/goplus/reflectx/workflows/Go1.20/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go120.yml)
    11  [![Go1.21](https://github.com/goplus/reflectx/workflows/Go1.21/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go121.yml)
    12  
    13  ### ABI
    14  
    15  support ABI0 and ABIInternal
    16  
    17  - ABI0 stack-based ABI
    18  - ABIInternal [register-based Go calling convention proposal](https://golang.org/design/40724-register-calling)
    19  
    20  	- Go1.17: amd64
    21  	- Go1.18: amd64 arm64 ppc64/ppc64le
    22  	- Go1.19: amd64 arm64 ppc64/ppc64le riscv64
    23  	- Go1.20: amd64 arm64 ppc64/ppc64le riscv64
    24  	- Go1.21: amd64 arm64 ppc64/ppc64le riscv64
    25  
    26  ### Field
    27  * reflectx.CanSet
    28  * reflectx.Field
    29  * reflectx.FieldByIndex
    30  * reflectx.FieldByName
    31  * reflectx.FieldByNameFunc
    32  
    33  ### Named
    34  * reflectx.StructOf(fs)
    35  * reflectx.NamedTypeOf
    36  
    37  * SetUnderlying
    38  * SetTypeName
    39  
    40  ### Method
    41  * reflectx.Method
    42  * reflectx.MakeMethod
    43  
    44  * reflectx.NewMethodSet
    45  * reflectx.SetMethodSet
    46  
    47  * reflectx.StructToMethodSet
    48  
    49  ### Interface
    50  * reflectx.InterfaceOf
    51  * reflectx.NamedInterfaceOf
    52  * reflectx.NewInterfaceType
    53  * reflectx.SetInterfaceType
    54  
    55  ### Context
    56  * reflectx.NewContext()
    57  
    58  ### Method allocs
    59  * allocs
    60  ```
    61  import _ "github.com/goplus/reflectx/icall/icall[N]"
    62  ```
    63  * install icall_gen
    64  ```
    65  go get github.com/goplus/reflectx/cmd/icall_gen
    66  ```
    67  ```
    68  icall_gen -o icall1024.go -pkg main -size 1024
    69  ```