raft/storage.go
func (ms *MemoryStorage) ApplySnapshot(snap pb.Snapshot) error {
	ms.Lock()
	defer ms.Unlock()

	//handle check for old snapshot being applied
	msIndex := ms.snapshot.Metadata.Index
	snapIndex := snap.Metadata.Index
	if msIndex >= snapIndex {
		return ErrSnapOutOfDate
	}

	ms.snapshot = snap
	ms.ents = []pb.Entry{{Term: snap.Metadata.Term, Index: snap.Metadata.Index}}
	return nil
}
func (ms *MemoryStorage) ApplySnapshot(snap pb.Snapshot) error {
	ms.Lock()
	defer ms.Unlock()

	//handle check for old snapshot being applied
	msIndex := ms.snapshot.Metadata.Index
	snapIndex := snap.Metadata.Index
	if msIndex >= snapIndex {
		return ErrSnapOutOfDate
	}

	ms.snapshot = snap
	ms.ents = []pb.Entry{{Term: snap.Metadata.Term, Index: snap.Metadata.Index}}
	return nil
}
func ( ms * MemoryStorage ) ApplySnapshot ( snap pb . Snapshot ) error { ms . Lock ( ) defer ms . Unlock ( ) //handle check for old snapshot being applied msIndex := ms . snapshot . Metadata . Index snapIndex := snap . Metadata . Index if msIndex >= snapIndex { return ErrSnapOutOfDate } ms . snapshot = snap ms . ents = [ ] pb . Entry { { Term : snap . Metadata . Term , Index : snap . Metadata . Index } } return nil }
// ApplySnapshot overwrites the contents of this Storage object with
// those of the given snapshot.
ApplySnapshot overwrites the contents of this Storage object with those of the given snapshot .