reversion.go 497 B

12345678910111213141516171819202122232425
  1. package storage
  2. import "encoding/binary"
  3. type reversion struct {
  4. main int64
  5. sub int64
  6. }
  7. func newRevBytes() []byte {
  8. return make([]byte, 8+1+8)
  9. }
  10. func revToBytes(rev reversion, bytes []byte) {
  11. binary.BigEndian.PutUint64(bytes, uint64(rev.main))
  12. bytes[8] = '_'
  13. binary.BigEndian.PutUint64(bytes[9:], uint64(rev.sub))
  14. }
  15. func bytesToRev(bytes []byte) reversion {
  16. return reversion{
  17. main: int64(binary.BigEndian.Uint64(bytes[0:8])),
  18. sub: int64(binary.BigEndian.Uint64(bytes[9:])),
  19. }
  20. }