Files

30 lines
530 B
Go
Raw Permalink Normal View History

2023-08-04 13:34:18 +02:00
package domain
type ConfigOption[T any] struct {
Value T `gorm:"column:v"`
2023-08-04 13:34:18 +02:00
Overridable bool `gorm:"column:o"`
}
func (o *ConfigOption[T]) GetValue() T {
2023-08-04 13:34:18 +02:00
return o.Value
}
func (o *ConfigOption[T]) SetValue(value T) {
2023-08-04 13:34:18 +02:00
o.Value = value
}
func (o *ConfigOption[T]) TrySetValue(value T) bool {
2023-08-04 13:34:18 +02:00
if o.Overridable {
o.Value = value
return true
}
return false
}
func NewConfigOption[T any](value T, overridable bool) ConfigOption[T] {
return ConfigOption[T]{
2023-08-04 13:34:18 +02:00
Value: value,
Overridable: overridable,
}
}