func WithBucketSize(bucketSize time.Duration) Config {
	return func(config *config) {
		config.bucketSize = bucketSize
	}
}
WithBucketSize set the bucket size of each bucket, usually used with WithMaxBuckets
event queue use a bucket sort to separate events into buckets, and then use a heap sort for each bucket
maxBuckets * bucketSize should cover events cluster, usually related to the simulation content
for example, most events generated with 1-second delay, then maxBuckets * bucketSize should be greater than 1 second
count of events in each bucket should not be too large
package ns_x
import (
	"time"
)
const DefaultBucketSize = time.Second
const DefaultMaxBuckets = 128
type Config func(config *config)
type config struct {
	bucketSize time.Duration
	maxBuckets int
}