Helper function to set default values
(config ...Config)
| 82 | |
| 83 | // Helper function to set default values |
| 84 | func configDefault(config ...Config) Config { |
| 85 | // Return default config if nothing provided |
| 86 | if len(config) < 1 { |
| 87 | cfg := ConfigDefault |
| 88 | |
| 89 | cfg.Lock = NewMemoryLock() |
| 90 | cfg.Storage = memory.New(memory.Config{ |
| 91 | GCInterval: cfg.Lifetime / 2, // Half the lifetime interval |
| 92 | }) |
| 93 | |
| 94 | return cfg |
| 95 | } |
| 96 | |
| 97 | // Override default config |
| 98 | cfg := config[0] |
| 99 | |
| 100 | // Set default values |
| 101 | |
| 102 | if cfg.Next == nil { |
| 103 | cfg.Next = ConfigDefault.Next |
| 104 | } |
| 105 | |
| 106 | if cfg.Lifetime.Nanoseconds() == 0 { |
| 107 | cfg.Lifetime = ConfigDefault.Lifetime |
| 108 | } |
| 109 | |
| 110 | if cfg.KeyHeader == "" { |
| 111 | cfg.KeyHeader = ConfigDefault.KeyHeader |
| 112 | } |
| 113 | if cfg.KeyHeaderValidate == nil { |
| 114 | cfg.KeyHeaderValidate = ConfigDefault.KeyHeaderValidate |
| 115 | } |
| 116 | |
| 117 | if cfg.KeepResponseHeaders != nil && len(cfg.KeepResponseHeaders) == 0 { |
| 118 | cfg.KeepResponseHeaders = ConfigDefault.KeepResponseHeaders |
| 119 | } |
| 120 | |
| 121 | if cfg.Lock == nil { |
| 122 | cfg.Lock = NewMemoryLock() |
| 123 | } |
| 124 | |
| 125 | if cfg.Storage == nil { |
| 126 | cfg.Storage = memory.New(memory.Config{ |
| 127 | GCInterval: cfg.Lifetime / 2, |
| 128 | }) |
| 129 | } |
| 130 | |
| 131 | return cfg |
| 132 | } |