Added WithContext() and FromContext()
This commit is contained in:
parent
facc69d70c
commit
a241b02ebf
27
context.go
Normal file
27
context.go
Normal file
@ -0,0 +1,27 @@
|
||||
package gorm
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
// contextKeyType is an unexported type so that the context key never
|
||||
// collides with any other context keys.
|
||||
type contextKeyType struct{}
|
||||
|
||||
// contextKey is the key used for the context to store the DB object.
|
||||
var contextKey = contextKeyType{}
|
||||
|
||||
// WithContext inserts a DB into the context and is retrievable using FromContext().
|
||||
func WithContext(ctx context.Context, db *DB) context.Context {
|
||||
return context.WithValue(ctx, contextKey, db)
|
||||
}
|
||||
|
||||
// FromContext extracts a DB from the context. An error is returned if
|
||||
// the context does not contain a DB object.
|
||||
func FromContext(ctx context.Context) (*DB, error) {
|
||||
db, _ := ctx.Value(contextKey).(*DB)
|
||||
if db == nil {
|
||||
return nil, ErrDBNotFoundInContext
|
||||
}
|
||||
return db, nil
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user