From 7fb49515ce4b6e0e58cfb9fedef40967c42282bc Mon Sep 17 00:00:00 2001 From: dudaodong Date: Mon, 2 Dec 2024 11:25:16 +0800 Subject: [PATCH] feat: add ToBigInt --- convertor/convertor.go | 35 +++++++++++ convertor/convertor_example_test.go | 9 +++ convertor/convertor_test.go | 50 +++++++++++++++ cryptor/rsa_private_example.pem | 98 ++++++++++++++--------------- cryptor/rsa_public_example.pem | 24 +++---- docs/api/packages/convertor.md | 31 +++++++++ docs/en/api/packages/convertor.md | 31 +++++++++ 7 files changed, 217 insertions(+), 61 deletions(-) diff --git a/convertor/convertor.go b/convertor/convertor.go index acf620c..2c45159 100644 --- a/convertor/convertor.go +++ b/convertor/convertor.go @@ -14,11 +14,13 @@ import ( "fmt" "io" "math" + "math/big" "reflect" "strconv" "strings" "github.com/duke-git/lancet/v2/structs" + "golang.org/x/exp/constraints" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) @@ -483,3 +485,36 @@ func ToRawUrlBase64(value any) string { return base64.RawURLEncoding.EncodeToString(marshal) } } + +// ToBigInt converts an integer of any supported type (int, int64, uint64, etc.) to *big.Int +// Play: todo +func ToBigInt[T constraints.Integer](v T) (*big.Int, error) { + result := new(big.Int) + + switch v := any(v).(type) { + case int: + result.SetInt64(int64(v)) // Convert to int64 for big.Int + case int8: + result.SetInt64(int64(v)) + case int16: + result.SetInt64(int64(v)) + case int32: + result.SetInt64(int64(v)) + case int64: + result.SetInt64(v) + case uint: + result.SetUint64(uint64(v)) // Convert to uint64 for big.Int + case uint8: + result.SetUint64(uint64(v)) + case uint16: + result.SetUint64(uint64(v)) + case uint32: + result.SetUint64(uint64(v)) + case uint64: + result.SetUint64(v) + default: + return nil, fmt.Errorf("unsupported type: %T", v) + } + + return result, nil +} diff --git a/convertor/convertor_example_test.go b/convertor/convertor_example_test.go index 3ed7e3c..53660d2 100644 --- a/convertor/convertor_example_test.go +++ b/convertor/convertor_example_test.go @@ -571,3 +571,12 @@ func ExampleToRawUrlBase64() { // dHJ1ZQ // ZXJy } + +func ExampleToBigInt() { + n := 9876543210 + bigInt, _ := ToBigInt(n) + + fmt.Println(bigInt) + // Output: + // 9876543210 +} diff --git a/convertor/convertor_test.go b/convertor/convertor_test.go index 2380ca4..2c56ad9 100644 --- a/convertor/convertor_test.go +++ b/convertor/convertor_test.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + "math/big" "reflect" "strconv" "testing" @@ -741,3 +742,52 @@ func TestToRawUrlBase64(t *testing.T) { d15, _ := base64.RawURLEncoding.DecodeString(r15) assert.Equal("4+3/4?=", string(d15)) } + +func TestToBigInt(t *testing.T) { + t.Parallel() + assert := internal.NewAssert(t, "TestToBigInt") + + tests := []struct { + name string + input int64 + want *big.Int + }{ + { + name: "int", + input: 42, + want: big.NewInt(42), + }, + { + name: "int8", + input: int64(int8(127)), + want: big.NewInt(127), + }, + { + name: "int16", + input: int64(int16(32000)), + want: big.NewInt(32000), + }, + { + name: "int32", + input: int64(int32(123456)), + want: big.NewInt(123456), + }, + { + name: "int64", + input: int64(987654321), + want: big.NewInt(987654321), + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ToBigInt(tt.input) + if err != nil { + t.Errorf("ToBigInt() error = %v", err) + return + } + + assert.Equal(tt.want, got) + }) + } +} diff --git a/cryptor/rsa_private_example.pem b/cryptor/rsa_private_example.pem index 3f82d4d..1be3763 100644 --- a/cryptor/rsa_private_example.pem +++ b/cryptor/rsa_private_example.pem @@ -1,51 +1,51 @@ -----BEGIN rsa private key----- -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 -----END rsa private key----- diff --git a/cryptor/rsa_public_example.pem b/cryptor/rsa_public_example.pem index 9df5059..cdda378 100644 --- a/cryptor/rsa_public_example.pem +++ b/cryptor/rsa_public_example.pem @@ -1,14 +1,14 @@ -----BEGIN rsa public key----- -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxZGG6vSSETKwW7bxx7NA -1tXmNh+0AAsOmdwOyd77C/F7bmf3iacdzsdJgumWpBZLpo7Xdke/6NWbzizdbawb -BKkLH5vdZpEYJsbIx9vQYPRrAL1taRHpWwqC86aZHhJ8afo5KARkW8U1BB+MCfJ0 -oGOgkpHPbbs7jRNhrUP52BPbdRUw7ZwwJHEseuAvw+nv80UmHdI5mrgKj//8r+cB -1JnErqJi0yTOgYwKqOPFcMoaCoyLRdMV8en1QZ7nY6KWF32K/OBGM8++lRsZGttF -Thx3Zs54QU2GFgthH5rkMtucuZUXDN2k+QqV1XrSC/a+IDZ1zhx0+NUuExktOpOq -kvc4IslIOPAcBJ4MoUWShOy91rW34QSV2ZgD6VMTYMce6xpH4Oh680I4ZtewZiRd -BnQ4EADoxPbiBHfTQJfzUBtaZDXqOFNN+friCITTKice0dByDlCN85bL7et0hyIs -FU1xi0SmFbt3IBFwsJf5B/aorLhZqwCIUFvf7EahOH51PlGr7M2ltZtpgHmFBzB0 -zYAoYOnDU1+avzVP5l9fObH4uLl8/fjeAr8pSB0drjaKf0Bj434aKrrftDyeGuMW -pXhFu9rr/eXXUVqU/jBfHR+60m+MBK9h8efkqtVW3EqNVApsapRFo/LNNDAC9lCK -WuFBjh0igdZNjSuatG9O9rMCAwEAAQ== +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxyEWKk4SEjsNfEJ0pBH7 +dLaWGuHVwQn45oOG4Bo5XwQhpgTm1TD+OgFg69BSeJduGtUExbcWEk8SAWgaSMk9 +2y8L/33cncabwDhLzMNOk1NBie9ScUENh8zVq5oJF6B16Ijk6gbhAuQ2KExA//FN +wU/AeG+nY5/mXMAqnxkl/INJd+UCRoEOZ+fvWDVyIS0zqb1XIQoi+rGVfcpaFX+O ++wPyHbbgRVVQjgimSq1DRSFHX19vRNQNWnNR0x01PsyTsSjNGTOKRInfupQEB17B +7EmOFU8NV7+PIoIlKSnSkl6jhpMPZd+Kd55ldlnybOLCFE4e+tzbCIG9pvI+wEDl +Ks/q4EUS8a4vJzpSc+WPAzohIkG6NTN6mh0V86dfexk+5lrnZ+zOb47769pOJy2N +nTMwUd6MMJDe5rm2coMSTNI/8uD3vHiQuh1Sbc/ognbk0kgI8/8mqjmy/C3nCbB4 +hzwdYrv04HOT3WIL7rWWmWYkwbO+JitXFaFka0/2dQiA4P+po3Q4JipMEskG7SlW +NZAMvpuU5OnRW5d40sJz4vsEVwzOBoPWVupXplXlZ6ipBGySovL8LJGUI6CF6qfw +G8gCjojkz1Y44gxyR/Zt0idqZkelTBReIHiYK5r3Ql4OiGfCmMhDD+PQA3FlD0gN +C48ZLXknzEfvOnzqkETx3YMCAwEAAQ== -----END rsa public key----- diff --git a/docs/api/packages/convertor.md b/docs/api/packages/convertor.md index f32a080..40c6f27 100644 --- a/docs/api/packages/convertor.md +++ b/docs/api/packages/convertor.md @@ -47,6 +47,7 @@ import ( - [ToUrlBase64](#ToUrlBase64) - [ToRawStdBase64](#ToRawStdBase64) - [ToRawUrlBase64](#ToRawUrlBase64) +- [ToBigInt](#ToBigInt)
@@ -1148,4 +1149,34 @@ func main() { // dHJ1ZQ // ZXJy } +``` + +### ToBigInt + +

值转换为bigInt。

+ +函数签名:[运行](todo) + +```go +func ToBigInt[T constraints.Integer](v T) (*big.Int, error) +``` + +示例: + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/convertor" +) + +func main() { + n := 9876543210 + bigInt, _ := convertor.ToBigInt(n) + + fmt.Println(bigInt) + // Output: + // 9876543210 +} ``` \ No newline at end of file diff --git a/docs/en/api/packages/convertor.md b/docs/en/api/packages/convertor.md index 10ab38d..dcdbb73 100644 --- a/docs/en/api/packages/convertor.md +++ b/docs/en/api/packages/convertor.md @@ -47,6 +47,7 @@ import ( - [ToUrlBase64](#ToUrlBase64) - [ToRawStdBase64](#ToRawStdBase64) - [ToRawUrlBase64](#ToRawUrlBase64) +- [ToBigInt](#ToBigInt)
@@ -1116,4 +1117,34 @@ func main() { // map[a:1 b:2] false // &{test 1 0.1 true } false } +``` + +### ToBigInt + +

Converts an integer of any supported type (int, int64, uint64, etc.) to *big.Int

+ +Signature:[Run](todo) + +```go +func ToBigInt[T constraints.Integer](v T) (*big.Int, error) +``` + +Example: + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/convertor" +) + +func main() { + n := 9876543210 + bigInt, _ := convertor.ToBigInt(n) + + fmt.Println(bigInt) + // Output: + // 9876543210 +} ``` \ No newline at end of file