1
0
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:
rurirei
2021-04-04 19:28:00 +08:00
committed by GitHub
parent 0dcd1f4992
commit aa40b8b835
3 changed files with 31 additions and 8 deletions

View File

@@ -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
}