wg-portal/internal/domain/options.go

30 lines
530 B
Go

package domain
type ConfigOption[T any] struct {
Value T `gorm:"column:v"`
Overridable bool `gorm:"column:o"`
}
func (o *ConfigOption[T]) GetValue() T {
return o.Value
}
func (o *ConfigOption[T]) SetValue(value T) {
o.Value = value
}
func (o *ConfigOption[T]) TrySetValue(value T) bool {
if o.Overridable {
o.Value = value
return true
}
return false
}
func NewConfigOption[T any](value T, overridable bool) ConfigOption[T] {
return ConfigOption[T]{
Value: value,
Overridable: overridable,
}
}