6
1
mirror of https://git.mills.io/saltyim/saltyim.git synced 2024-06-28 09:41:02 +00:00
prologic-saltyim/internal/options.go
2022-03-22 09:54:02 +10:00

41 lines
957 B
Go

package internal
const (
// InvalidConfigValue is the constant value for invalid config values
// which must be changed for production configurations before successful
// startup
InvalidConfigValue = "INVALID CONFIG VALUE - PLEASE CHANGE THIS VALUE"
// DefaultDebug is the default debug mode
DefaultDebug = false
// DefaultStore is the default data store used for accounts, sessions, etc
DefaultStore = "bitcask://saltyim.db"
)
func NewConfig() *Config {
return &Config{
Debug: DefaultDebug,
Store: DefaultStore,
}
}
// Option is a function that takes a config struct and modifies it
type Option func(*Config) error
// WithDebug sets the debug mode lfag
func WithDebug(debug bool) Option {
return func(cfg *Config) error {
cfg.Debug = debug
return nil
}
}
// WithStore sets the store to use for accounts, sessions, etc.
func WithStore(store string) Option {
return func(cfg *Config) error {
cfg.Store = store
return nil
}
}