File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff 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.
You can’t perform that action at this time.
0 commit comments