util.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright 2018 The etcd Authors
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package snapshot
  15. import "encoding/binary"
  16. type revision struct {
  17. main int64
  18. sub int64
  19. }
  20. func bytesToRev(bytes []byte) revision {
  21. return revision{
  22. main: int64(binary.BigEndian.Uint64(bytes[0:8])),
  23. sub: int64(binary.BigEndian.Uint64(bytes[9:])),
  24. }
  25. }
  26. // initIndex implements ConsistentIndexGetter so the snapshot won't block
  27. // the new raft instance by waiting for a future raft index.
  28. type initIndex int
  29. func (i *initIndex) ConsistentIndex() uint64 { return uint64(*i) }