mirror of https://github.com/gin-gonic/gin.git
fix(context): make context Value method adhere to Go standards (#3897)
This commit is contained in:
parent
0d9dbbb445
commit
2b1da2b0b3
|
@ -43,6 +43,10 @@ const BodyBytesKey = "_gin-gonic/gin/bodybyteskey"
|
|||
// ContextKey is the key that a Context returns itself for.
|
||||
const ContextKey = "_gin-gonic/gin/contextkey"
|
||||
|
||||
type ContextKeyType int
|
||||
|
||||
const ContextRequestKey ContextKeyType = 0
|
||||
|
||||
// abortIndex represents a typical value used in abort functions.
|
||||
const abortIndex int8 = math.MaxInt8 >> 1
|
||||
|
||||
|
@ -1225,7 +1229,7 @@ func (c *Context) Err() error {
|
|||
// if no value is associated with key. Successive calls to Value with
|
||||
// the same key returns the same result.
|
||||
func (c *Context) Value(key any) any {
|
||||
if key == 0 {
|
||||
if key == ContextRequestKey {
|
||||
return c.Request
|
||||
}
|
||||
if key == ContextKey {
|
||||
|
|
|
@ -1985,7 +1985,7 @@ func TestContextGolangContext(t *testing.T) {
|
|||
ti, ok := c.Deadline()
|
||||
assert.Equal(t, ti, time.Time{})
|
||||
assert.False(t, ok)
|
||||
assert.Equal(t, c.Value(0), c.Request)
|
||||
assert.Equal(t, c.Value(ContextRequestKey), c.Request)
|
||||
assert.Equal(t, c.Value(ContextKey), c)
|
||||
assert.Nil(t, c.Value("foo"))
|
||||
|
||||
|
|
Loading…
Reference in New Issue