1253
// values. The value from dynamic config will be _merged_ over a deep copy of 'def'. Be very careful
1254
// when using non-empty maps or slices as defaults, the result may not be what you want.
1255
>
func NewTaskQueueTypedSetting[T any](key string, def T, description string) TaskQueueTypedSetting[T] {
setting_gen.go
1256
>
// Warn on any shared structure used with ConvertStructure, even though we handle it by deep copying.
1257
>
warnDefaultSharedStructure(key, def)
1258
>
// If even deep copy won't even work, we should panic early. Do that by calling deep copy once here.
1259
>
_ = deepCopyForMapstructure(def)
1260
>
1261
>
s := TaskQueueTypedSetting[T]{
1262
>
key: MakeKey(key),
1263
>
def: def,
1264
>
convert: ConvertStructure[T](def),
1265
>
description: description,
1266
>
}
1267
>
register(s)
1268
>
return s
1269
>
}
1270
1271
// NewTaskQueueTypedSettingWithConverter creates a setting with a custom converter function.
1272
>
func NewTaskQueueTypedSettingWithConverter[T any](key string, convert func(any) (T, error), def T, description string) TaskQueueTypedSetting[T] {
setting_gen.go
1273
>
s := TaskQueueTypedSetting[T]{
1274
>
key: MakeKey(key),
1275
>
def: def,
1276
>
convert: convert,
1277
>
description: description,
1278
>
}
1279
>
register(s)
1280
>
return s
1281
>
}
1282
1283
// NewTaskQueueTypedSettingWithConstrainedDefault creates a setting with a compound default value.
1284
>
func NewTaskQueueTypedSettingWithConstrainedDefault[T any](key string, convert func(any) (T, error), cdef []TypedConstrainedValue[T], description string) TaskQueueTypedConstrainedDefaultSetting[T] {
setting_gen.go
1285
>
s := TaskQueueTypedConstrainedDefaultSetting[T]{
1286
>
key: MakeKey(key),
1287
>
cdef: cdef,
1288
>
convert: convert,
1289
>
description: description,
1290
>
}
1291
>
register(s)
1292
>
return s
1293
>
}
1294
1295
>
func (s TaskQueueTypedSetting[T]) Key() Key { return s.key }
setting_gen.go
1296
func (s TaskQueueTypedSetting[T]) Precedence() Precedence { return PrecedenceTaskQueue }
1297
func (s TaskQueueTypedSetting[T]) Validate(v any) error {