func NewEmptySet(size int) *Set {
	s := &Set{}
	s.values = make(map[types.BlockID]struct{}, size)
	s.id = 0
	s.isIDValid = false
	return s
}
NewEmptySet creates an empty set with the provided size.
package hare
import (
	"bytes"
	"fmt"
	"hash/fnv"
	"math"
	"sort"
	"github.com/spacemeshos/go-spacemesh/common/types"
)
type messageType byte
const (
	status   messageType = 0
	proposal messageType = 1
	commit   messageType = 2
	notify   messageType = 3
	pre      messageType = 10
)
const preRound uint32 = math.MaxUint32
const (
	statusRound uint32 = iota
	proposalRound
	commitRound
	notifyRound
)
const defaultSetSize = 200
func (mType messageType) String() string {
	switch mType {
	case status:
		return "Status"
	case proposal:
		return "Proposal"
	case commit:
		return "Commit"
	case notify:
		return "Notify"
	case pre:
		return "PreRound"
	default:
		return "Unknown message type"
	}
}
type Set struct {
	values    map[types.BlockID]struct{}
	id        uint32
	isIDValid bool
}
func NewDefaultEmptySet() *Set {
	return NewEmptySet(defaultSetSize)
}