Added functions to Hash & Address
* Set, SetString, SetBytes * StringTo*, BytesTo*
This commit is contained in:
		
							parent
							
								
									dc864ee3a5
								
							
						
					
					
						commit
						20b7162a62
					
				| @ -5,6 +5,25 @@ type ( | |||||||
| 	Address [20]byte | 	Address [20]byte | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	zeroHash    Hash | ||||||
|  | 	zeroAddress Address | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func BytesToHash(b []byte) Hash { | ||||||
|  | 	var h Hash | ||||||
|  | 	h.SetBytes(b) | ||||||
|  | 	return h | ||||||
|  | } | ||||||
|  | func StringToHash(s string) Hash { return BytesToHash([]byte(s)) } | ||||||
|  | 
 | ||||||
|  | func BytesToAddress(b []byte) Address { | ||||||
|  | 	var a Address | ||||||
|  | 	a.SetBytes(b) | ||||||
|  | 	return a | ||||||
|  | } | ||||||
|  | func StringToAddress(s string) Address { return BytesToAddress([]byte(s)) } | ||||||
|  | 
 | ||||||
| // Don't use the default 'String' method in case we want to overwrite
 | // Don't use the default 'String' method in case we want to overwrite
 | ||||||
| 
 | 
 | ||||||
| // Get the string representation of the underlying hash
 | // Get the string representation of the underlying hash
 | ||||||
| @ -24,8 +43,16 @@ func (h Hash) SetBytes(b []byte) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Set string `s` to h. If s is larger than len(h) it will panic
 | ||||||
| func (h Hash) SetString(s string) { h.SetBytes([]byte(s)) } | func (h Hash) SetString(s string) { h.SetBytes([]byte(s)) } | ||||||
| 
 | 
 | ||||||
|  | // Sets h to other
 | ||||||
|  | func (h Hash) Set(other Hash) { | ||||||
|  | 	for i, v := range other { | ||||||
|  | 		h[i] = v | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Get the string representation of the underlying address
 | // Get the string representation of the underlying address
 | ||||||
| func (a Address) Str() string { | func (a Address) Str() string { | ||||||
| 	return string(a[:]) | 	return string(a[:]) | ||||||
| @ -42,4 +69,13 @@ func (a Address) SetBytes(b []byte) { | |||||||
| 		a[i] = b[i] | 		a[i] = b[i] | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| func (a Address) SetString(s string) { h.SetBytes([]byte(a)) } | 
 | ||||||
|  | // Set string `s` to a. If s is larger than len(a) it will panic
 | ||||||
|  | func (a Address) SetString(s string) { a.SetBytes([]byte(s)) } | ||||||
|  | 
 | ||||||
|  | // Sets a to other
 | ||||||
|  | func (a Address) Set(other Address) { | ||||||
|  | 	for i, v := range other { | ||||||
|  | 		a[i] = v | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user