allow to override Struct on Save #126

Merged
vtolstov merged 1 commits from fix into v3 2023-03-15 00:03:56 +03:00
1 changed files with 6 additions and 1 deletions

View File

@ -157,13 +157,18 @@ func (c *consulConfig) Save(ctx context.Context, opts ...config.SaveOption) erro
path := c.path
dst := c.opts.Struct
if options.Struct != nil {
dst = options.Struct
}
if options.Context != nil {
if v, ok := options.Context.Value(pathKey{}).(string); ok && v != "" {
path = v
}
}
buf, err := c.opts.Codec.Marshal(c.opts.Struct)
buf, err := c.opts.Codec.Marshal(dst)
if err == nil {
_, err = c.cli.KV().Put(&api.KVPair{Key: path, Value: buf}, nil)
}