Skip to content

Commit 487c743

Browse files
committed
Add pcommon.Map helper to add a key to the map if does not exists
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent 2335ec7 commit 487c743

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

pdata/pcommon/map.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,18 @@ func (m Map) PutEmpty(k string) Value {
121121
return newValue(&(*m.getOrig())[len(*m.getOrig())-1].Value, m.getState())
122122
}
123123

124+
// GetOrPutEmpty returns the Value associated with the key and true (loaded) if the key exists in the map,
125+
// otherwise inserts an empty value to the map under the given key and returns the inserted value
126+
// and false (loaded).
127+
func (m Map) GetOrPutEmpty(k string) (Value, bool) {
128+
m.getState().AssertMutable()
129+
if av, existing := m.Get(k); existing {
130+
return av, true
131+
}
132+
*m.getOrig() = append(*m.getOrig(), otlpcommon.KeyValue{Key: k})
133+
return newValue(&(*m.getOrig())[len(*m.getOrig())-1].Value, m.getState()), false
134+
}
135+
124136
// PutStr performs the Insert or Update action. The Value is
125137
// inserted to the map that did not originally have the key. The key/value is
126138
// updated to the map where the key already existed.

0 commit comments

Comments
 (0)