code: func (m *nodeFSM) Persist(sink raft.SnapshotSink) error {
  	if err := (*Node)(m).handler.Snapshot(sink); err != nil {
  		sink.Cancel()
  		return err
  	}
  	sink.Close()
  	return nil
  }
docs: // Persist writes the snapshot to the given sink.