trpc.group/trpc-go/trpc-go@v1.0.3/config/options.go (about) 1 // 2 // 3 // Tencent is pleased to support the open source community by making tRPC available. 4 // 5 // Copyright (C) 2023 THL A29 Limited, a Tencent company. 6 // All rights reserved. 7 // 8 // If you have downloaded a copy of the tRPC source code from Tencent, 9 // please note that tRPC source code is licensed under the Apache 2.0 License, 10 // A copy of the Apache 2.0 License is included in this file. 11 // 12 // 13 14 package config 15 16 // WithCodec returns an option which sets the codec's name. 17 func WithCodec(name string) LoadOption { 18 return func(c *TrpcConfig) { 19 c.decoder = GetCodec(name) 20 } 21 } 22 23 // WithProvider returns an option which sets the provider's name. 24 func WithProvider(name string) LoadOption { 25 return func(c *TrpcConfig) { 26 c.p = GetProvider(name) 27 } 28 } 29 30 // WithExpandEnv replaces ${var} in raw bytes with environment value of var. 31 // Note, method TrpcConfig.Bytes will return the replaced bytes. 32 func WithExpandEnv() LoadOption { 33 return func(c *TrpcConfig) { 34 c.expandEnv = true 35 } 36 } 37 38 // WithWatch returns an option to start watch model 39 func WithWatch() LoadOption { 40 return func(c *TrpcConfig) { 41 c.watch = true 42 } 43 } 44 45 // WithWatchHook returns an option to set log func for config change logger 46 func WithWatchHook(f func(msg WatchMessage)) LoadOption { 47 return func(c *TrpcConfig) { 48 c.watchHook = f 49 } 50 } 51 52 // options is config option. 53 type options struct{} 54 55 // Option is the option for config provider sdk. 56 type Option func(*options)