metadata: add exclude to Copy func
Some checks failed
/ autoupdate (push) Failing after 1m2s

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2024-03-09 23:53:04 +03:00
parent 856aac4aa9
commit eb534a46d0
2 changed files with 13 additions and 1 deletions

View File

@ -67,11 +67,12 @@ func (md Metadata) Del(keys ...string) {
} }
// Copy makes a copy of the metadata // Copy makes a copy of the metadata
func Copy(md Metadata) Metadata { func Copy(md Metadata, exclude ...string) Metadata {
nmd := make(Metadata, len(md)) nmd := make(Metadata, len(md))
for k, v := range md { for k, v := range md {
nmd[k] = v nmd[k] = v
} }
nmd.Del(exclude...)
return nmd return nmd
} }

View File

@ -189,3 +189,14 @@ func TestMetadataContext(t *testing.T) {
t.Errorf("Expected metadata length 1 got %d", i) t.Errorf("Expected metadata length 1 got %d", i)
} }
} }
func TestCopy(t *testing.T) {
md := New(2)
md.Set("key1", "val1", "key2", "val2")
nmd := Copy(md, "key2")
if len(nmd) != 1 {
t.Fatal("Copy exclude not works")
} else if nmd["Key1"][0] != "val1" {
t.Fatal("Copy exclude not works")
}
}