func StatusCode(ctx context.Context) (string, bool) {
	code, ok := ctx.Value(StatusCodeKey).(string)
	return code, ok
}
StatusCode retrieves the status code of the response (as string like "200").
If it is known returns (status, true).
If it is not known, it returns ("", false).
package xcontext
import (
	"context"
	"github.com/pkg/errors"
	"net/http"
	"strconv"
)
type contextKey int
const (
	MethodNameKey contextKey = 1 + iota
	ServiceNameKey
	PackageNameKey
	StatusCodeKey
	RequestHeaderKey
	ResponseWriterKey
)
func WithMethodName(ctx context.Context, name string) context.Context {
	return context.WithValue(ctx, MethodNameKey, name)
}
func WithServiceName(ctx context.Context, name string) context.Context {
	return context.WithValue(ctx, ServiceNameKey, name)
}
func WithPackageName(ctx context.Context, name string) context.Context {
	return context.WithValue(ctx, PackageNameKey, name)
}
func WithStatusCode(ctx context.Context, code int) context.Context {
	return context.WithValue(ctx, StatusCodeKey, strconv.Itoa(code))
}
func WithResponseWriter(ctx context.Context, w http.ResponseWriter) context.Context {
	return context.WithValue(ctx, ResponseWriterKey, w)
}
func MethodName(ctx context.Context) (string, bool) {
	name, ok := ctx.Value(MethodNameKey).(string)
	return name, ok
}
func ServiceName(ctx context.Context) (string, bool) {
	name, ok := ctx.Value(ServiceNameKey).(string)
	return name, ok
}
func PackageName(ctx context.Context) (string, bool) {
	name, ok := ctx.Value(PackageNameKey).(string)
	return name, ok
}