diff options
| author | 2022-05-02 14:05:18 +0100 | |
|---|---|---|
| committer | 2022-05-02 15:05:18 +0200 | |
| commit | b56dae8120d43b9acd3d3ed4d40100ffab7b972a (patch) | |
| tree | d55d30589d8a8499ed3d5eecba163abc9fa78c27 /vendor/lukechampine.com | |
| parent | add extra indexes as a migration (#527) (diff) | |
| download | gotosocial-b56dae8120d43b9acd3d3ed4d40100ffab7b972a.tar.xz | |
[chore] Update all but bun libraries (#526)
* update all but bun libraries
Signed-off-by: kim <grufwub@gmail.com>
* remove my personal build script changes
Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/lukechampine.com')
| -rw-r--r-- | vendor/lukechampine.com/uint128/uint128.go | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/vendor/lukechampine.com/uint128/uint128.go b/vendor/lukechampine.com/uint128/uint128.go index 0b74b9fc5..04e65783a 100644 --- a/vendor/lukechampine.com/uint128/uint128.go +++ b/vendor/lukechampine.com/uint128/uint128.go @@ -2,6 +2,8 @@ package uint128 // import "lukechampine.com/uint128" import ( "encoding/binary" + "errors" + "fmt" "math" "math/big" "math/bits" @@ -385,6 +387,21 @@ func (u Uint128) Big() *big.Int { return i } +// Scan implements fmt.Scanner. +func (u *Uint128) Scan(s fmt.ScanState, ch rune) error { + i := new(big.Int) + if err := i.Scan(s, ch); err != nil { + return err + } else if i.Sign() < 0 { + return errors.New("value cannot be negative") + } else if i.BitLen() > 128 { + return errors.New("value overflows Uint128") + } + u.Lo = i.Uint64() + u.Hi = i.Rsh(i, 64).Uint64() + return nil +} + // New returns the Uint128 value (lo,hi). func New(lo, hi uint64) Uint128 { return Uint128{lo, hi} @@ -412,6 +429,12 @@ func FromBig(i *big.Int) (u Uint128) { panic("value overflows Uint128") } u.Lo = i.Uint64() - u.Hi = new(big.Int).Rsh(i, 64).Uint64() + u.Hi = i.Rsh(i, 64).Uint64() return u } + +// FromString parses s as a Uint128 value. +func FromString(s string) (u Uint128, err error) { + _, err = fmt.Sscan(s, &u) + return +} |
