bitcask-mirror/options.go

48 lines
850 B
Go
Raw Normal View History

2019-03-14 11:14:55 +00:00
package bitcask
const (
DefaultMaxDatafileSize = 1 << 20 // 1MB
DefaultMaxKeySize = 64 // 64 bytes
DefaultMaxValueSize = 1 << 16 // 65KB
)
// Option ...
type Option option
type option func(*config) error
type config struct {
2019-03-14 11:14:55 +00:00
MaxDatafileSize int
MaxKeySize int
MaxValueSize int
}
func NewDefaultConfig() *config {
return &config{
2019-03-14 11:14:55 +00:00
MaxDatafileSize: DefaultMaxDatafileSize,
MaxKeySize: DefaultMaxKeySize,
MaxValueSize: DefaultMaxValueSize,
}
}
func WithMaxDatafileSize(size int) option {
return func(cfg *config) error {
cfg.MaxDatafileSize = size
2019-03-14 11:14:55 +00:00
return nil
}
}
func WithMaxKeySize(size int) option {
return func(cfg *config) error {
cfg.MaxKeySize = size
2019-03-14 11:14:55 +00:00
return nil
}
}
func WithMaxValueSize(size int) option {
return func(cfg *config) error {
cfg.MaxValueSize = size
2019-03-14 11:14:55 +00:00
return nil
}
}