mirror of https://github.com/h44z/wg-portal.git
				
				
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			530 B
		
	
	
	
		
			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,
 | 
						|
	}
 | 
						|
}
 |