aboutsummaryrefslogtreecommitdiff
path: root/userdata.go
diff options
context:
space:
mode:
authorGravatar tyltr <tylitianrui@126.com> 2021-10-08 23:45:45 +0800
committerGravatar GitHub <noreply@github.com> 2021-10-08 17:45:45 +0200
commit7fdd5261e8cc744f04c0a90d7319688179cf78e9 (patch)
tree0eda616930260b4c6be446fac3f6794cd519759a /userdata.go
parentfeat:no need to store nil (#1116) (diff)
downloadfasthttp-7fdd5261e8cc744f04c0a90d7319688179cf78e9.tar.gz
fasthttp-7fdd5261e8cc744f04c0a90d7319688179cf78e9.tar.bz2
fasthttp-7fdd5261e8cc744f04c0a90d7319688179cf78e9.zip
feat: a new userData API `Remove` (#1117)
* feat:userData new api "delete" * ctx api `remove` * rename * modify
Diffstat (limited to 'userdata.go')
-rw-r--r--userdata.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/userdata.go b/userdata.go
index 8d2eff9..9a7c988 100644
--- a/userdata.go
+++ b/userdata.go
@@ -21,6 +21,7 @@ func (d *userData) Set(key string, value interface{}) {
return
}
}
+
if value == nil {
return
}
@@ -72,3 +73,23 @@ func (d *userData) Reset() {
}
*d = (*d)[:0]
}
+
+func (d *userData) Remove(key string) {
+ args := *d
+ n := len(args)
+ for i := 0; i < n; i++ {
+ kv := &args[i]
+ if string(kv.key) == key {
+ n--
+ args[i] = args[n]
+ args[n].value = nil
+ args = args[:n]
+ *d = args
+ return
+ }
+ }
+}
+
+func (d *userData) RemoveBytes(key []byte) {
+ d.Remove(b2s(key))
+}