// 20-byte SHA1 hash used for info and pieces.
type Hash [HashSize]byte
-var (
- _ fmt.Formatter = (*Hash)(nil)
- _ encoding.TextUnmarshaler = (*Hash)(nil)
-)
+var _ fmt.Formatter = (*Hash)(nil)
func (h Hash) Format(f fmt.State, c rune) {
// TODO: I can't figure out a nice way to just override the 'x' rune, since it's meaningless
return
}
+var (
+ _ encoding.TextUnmarshaler = (*Hash)(nil)
+ _ encoding.TextMarshaler = Hash{}
+)
+
func (h *Hash) UnmarshalText(b []byte) error {
return h.FromHexString(string(b))
}
+func (h Hash) MarshalText() (text []byte, err error) {
+ return []byte(h.HexString()), nil
+}
func NewHashFromHex(s string) (h Hash) {
err := h.FromHexString(s)