Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove more uses of fmt package. #454

Merged
merged 2 commits into from
Feb 18, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Remove another use of fmt.
zenhack committed Feb 18, 2023
commit fd4ff32e3c2f2252cea56a502d7f0555a0235f04
20 changes: 20 additions & 0 deletions internal/str/str.go
Original file line number Diff line number Diff line change
@@ -14,6 +14,26 @@ func Itod[T Int](n T) string {
return strconv.FormatInt(int64(n), 10)
}

// UToHex returns n formatted in hexidecimal.
func UToHex[T Uint](n T) string {
return strconv.FormatUint(uint64(n), 16)
}

// ZeroPad pads value to the left with zeros, making the resulting string
// count bytes long.
func ZeroPad(count int, value string) string {
pad := count - len(value)
if pad < 0 {
panic("ZeroPad: count is less than len(value)")
}
buf := make([]byte, count)
for i := 0; i < pad; i++ {
buf[i] = '0'
}
copy(buf[:pad], value[:])
return string(buf)
}

type Uint interface {
~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uint
}
4 changes: 1 addition & 3 deletions rawpointer.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package capnp

import (
"fmt"

"capnproto.org/go/capnp/v3/internal/str"
)

@@ -250,7 +248,7 @@ func (p rawPointer) GoString() string {
default:
// other pointer
if p.otherPointerType() != 0 {
return fmt.Sprintf("rawPointer(%#016x)", uint64(p))
return "rawPointer(" + str.ZeroPad(16, str.UToHex(p)) + ")"
}
return "rawInterfacePointer(" + str.Utod(p.capabilityIndex()) + ")"
}