Add public Result.AddError method
diff --git a/result.go b/result.go
index d21e53f..e2e96fb 100644
--- a/result.go
+++ b/result.go
@@ -165,6 +165,17 @@
 func (v *Result) Errors() []ResultError {
 	return v.errors
 }
+// Add a fully filled error to the error set
+func (v *Result) AddError(err ResultError, context *jsonContext, value interface{}, details ErrorDetails) {
+	if _, exists := details["context"]; !exists && context != nil {
+		details["context"] = context.String()
+	}
+
+	err.SetDescription(formatErrorDescription(err.DescriptionFormat(), details))
+
+	v.errors = append(v.errors, err)
+	v.score--
+}
 
 func (v *Result) addInternalError(err ResultError, context *jsonContext, value interface{}, details ErrorDetails) {
 	newError(err, context, value, Locale, details)