package locodebolt import ( "io/fs" "os" "time" "go.etcd.io/bbolt" ) // Option sets an optional parameter of DB. type Option func(*options) type options struct { mode fs.FileMode boltOpts *bbolt.Options } func defaultOpts() *options { return &options{ mode: os.ModePerm, // 0777 boltOpts: &bbolt.Options{ Timeout: 3 * time.Second, }, } } // ReadOnly enables read-only mode of the DB. // // Do not call DB.Put method on instances with // this option: the behavior is undefined. func ReadOnly() Option { return func(o *options) { o.boltOpts.ReadOnly = true } }