func UnaryServerInterceptor(mapFuncs ...MapFunc) grpc.UnaryServerInterceptor {
	return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (res interface{}, err error) {
		container := InitContainer()
		mapper := container.AddMapping(mapFuncs...)
		ctx = NewContext(ctx, container)
		res, err = handler(ctx, req)
		if err != nil {
			if _, ok := err.(*Container); ok {
				return nil, err
			}
			if _, ok := status.FromError(err); ok {
				return nil, err
			}
			if err := mapper.Map(ctx, err); err != nil {
				return nil, err
			}
		}
		return res, nil
	}
}
UnaryServerInterceptor returns grpc.UnaryServerInterceptor
that should be used as a middleware to generate Error Messages
with Details and Field Information with Mapping given.
package errors
import (
	"context"
	"google.golang.org/grpc"
	"google.golang.org/grpc/status"
)