func (e *StructErrors) Error() string {
	buff := bytes.NewBufferString(fmt.Sprintf(structErrMsg, e.Struct))

	for _, err := range e.Errors {
		buff.WriteString(err.Error())
		buff.WriteString("\n")
	}

	for _, err := range e.StructErrors {
		buff.WriteString(err.Error())
	}

	return strings.TrimSpace(buff.String())
}
func (e *StructErrors) Error() string {
	buff := bytes.NewBufferString(fmt.Sprintf(structErrMsg, e.Struct))

	for _, err := range e.Errors {
		buff.WriteString(err.Error())
		buff.WriteString("\n")
	}

	for _, err := range e.StructErrors {
		buff.WriteString(err.Error())
	}

	return strings.TrimSpace(buff.String())
}
func ( e * StructErrors ) Error ( ) string { buff := bytes . NewBufferString ( fmt . Sprintf ( structErrMsg , e . Struct ) ) for _ , err := range e . Errors { buff . WriteString ( err . Error ( ) ) buff . WriteString ( " \n " ) } for _ , err := range e . StructErrors { buff . WriteString ( err . Error ( ) ) } return strings . TrimSpace ( buff . String ( ) ) }
// This is intended for use in development + debugging and not intended to be a production error message.
// it also allows StructErrors to be used as an Error interface
This is intended for use in development + debugging and not intended to be a production error message . it also allows StructErrors to be used as an Error interface