mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-12-28 04:55:37 -05:00
Feat: core.ToContext(ctx, v) for ctx initialization (#852)
This commit is contained in:
16
context.go
16
context.go
@@ -27,3 +27,19 @@ func MustFromContext(ctx context.Context) *Instance {
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
// ToContext returns ctx from the given context, or creates an Instance if the context doesn't find that.
|
||||
func ToContext(ctx context.Context, v *Instance) context.Context {
|
||||
if FromContext(ctx) != v {
|
||||
ctx = context.WithValue(ctx, v2rayKey, v)
|
||||
}
|
||||
return ctx
|
||||
}
|
||||
|
||||
// MustToContext returns ctx from the given context, or panics if not found that.
|
||||
func MustToContext(ctx context.Context, v *Instance) context.Context {
|
||||
if c := ToContext(ctx, v); c != ctx {
|
||||
panic("V is not in context.")
|
||||
}
|
||||
return ctx
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user