func New(ctx context.Context, code codes.Code, format string, args ...interface{}) *Container {
	return FromContext(ctx).New(code, format, args...)
}
New function resets any error that was inside context stored error container
and replaces it with a new error.
package errors
import (
	"context"
	"github.com/infobloxopen/atlas-app-toolkit/rpc/errdetails"
	"google.golang.org/grpc/codes"
)
const (
	DefaultErrorContainerKey = "Error-Container"
)
func NewContext(ctx context.Context, c *Container) context.Context {
	return context.WithValue(ctx, DefaultErrorContainerKey, c)
}
func FromContext(ctx context.Context) *Container {
	if c := ctx.Value(DefaultErrorContainerKey); c != nil {
		return c.(*Container)
	}
	return nil
}
func Detail(ctx context.Context, code codes.Code, target string, format string, args ...interface{}) *Container {
	return FromContext(ctx).WithDetail(code, target, format, args...)
}
func Details(ctx context.Context, details ...*errdetails.TargetInfo) *Container {
	return FromContext(ctx).WithDetails(details...)
}
func Field(ctx context.Context, target string, format string, args ...interface{}) *Container {
	return FromContext(ctx).WithField(target, format, args...)
}
func Fields(ctx context.Context, fields map[string][]string) *Container {
	return FromContext(ctx).WithFields(fields)
}