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