Interim while bringing sqlc in
This commit is contained in:
@@ -20,13 +20,31 @@ packet-beta
|
||||
40-63: "FFFFFF | Path"
|
||||
```
|
||||
*/
|
||||
func (d64 *Domain64) AsInt64() int64 {
|
||||
const SHIFT_TLD = (64 - 8)
|
||||
const SHIFT_DOMAIN = (64 - (8 + 24))
|
||||
const SHIFT_SUBDOMAIN = (64 - (8 + 24 + 8))
|
||||
const SHIFT_PATH = (64 - (8 + 24 + 8 + 24))
|
||||
|
||||
const MASK_TLD = 0xFF0000000000000
|
||||
const MASK_DOMAIN = 0x00FFFFFF00000000
|
||||
const MASK_SUBDOMAIN = 0x00000000FF000000
|
||||
const MASK_PATH = 0x0000000000FFFFFF
|
||||
|
||||
func (d64 Domain64) ToInt64() int64 {
|
||||
var result int64 = 0
|
||||
result = result | (int64(d64.TLD) << (64 - 8))
|
||||
result = result | (int64(d64.Domain) << (64 - (8 + 24)))
|
||||
result = result | (int64(d64.Subdomain) << (64 - (8 + 24 + 8)))
|
||||
result = result | (int64(d64.Path) << (64 - (8 + 24 + 8 + 24)))
|
||||
result = result | (int64(d64.TLD) << SHIFT_TLD)
|
||||
result = result | (int64(d64.Domain) << SHIFT_DOMAIN)
|
||||
result = result | (int64(d64.Subdomain) << SHIFT_SUBDOMAIN)
|
||||
result = result | (int64(d64.Path) << SHIFT_PATH)
|
||||
return result
|
||||
}
|
||||
|
||||
// https://gobyexample.com/testing-and-benchmarking
|
||||
func IntToDomain64(i int64) Domain64 {
|
||||
d64 := Domain64{}
|
||||
|
||||
d64.TLD = uint8((i & MASK_TLD) >> SHIFT_TLD)
|
||||
d64.Domain = uint16((i & MASK_DOMAIN) >> SHIFT_DOMAIN)
|
||||
d64.Subdomain = uint8((i & MASK_SUBDOMAIN) >> SHIFT_SUBDOMAIN)
|
||||
d64.Path = uint16(i & MASK_PATH)
|
||||
return d64
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user