# README
errs
This package contains optional error types that implement all error behaviours defined in lathos.
These are for convenience and mean you can opt to use these concrete types rather than implement your own as long as you are prepared to be tied to their implementation details.
If your project is large it's recommended that you implement your own types based off the lathos interfaces.
# Functions
NewErrBadRequest will create and return a new BadRequest error.
NewErrBadRequestf will create and return a new BadRequest error.
NewErrConflict will create and return a new Conflict error.
NewErrConflictf will create and return a new Conflict error.
NewErrDuplicate will create and return a new Duplicate error.
NewErrDuplicatef will create and return a new Duplicate error.
NewErrInternal will create and return a new ErrInternal.
NewErrNotAuthenticated will create and return a new NotAuthenticated error.
NewErrNotAuthenticatedf will create and return a new NotAuthenticated error.
NewErrNotAuthorised will create and return a new NotAuthorised error.
NewErrNotAuthorisedf will create and return a new NotAuthorised error.
NewErrNotAvailable will create and return a new NotAvailable error.
NewErrNotAvailablef will create and return a new NotAvailable error.
NewErrNotFound will create and return a new NotFound error.
NewErrNotFoundf will create and return a new NotFound error.
NewErrRetryable will create and return a new Retryable error.
NewErrTooManyRequests will create and return a new TooManyRequests error.
NewErrTooManyRequestsf will create and return a new TooManyRequests error.
NewErrUnprocessable will create and return a new Unprocessable error.
NewErrUnprocessablef will create and return a new Unprocessable error.
# Structs
ErrBadRequest we don't the request, and are unable to process it as it is not valid.
ErrClient can be implemented to create an error that can be returned to a user, the intention is to not log these errors as client errors could cover validation issues, bad inputs etc.
ErrConflict can be returned if you reach a condition where the system is in conflict with a user's request.
ErrDuplicate can be returned if a user attempts to add an item that already exists.
ErrInternal implements InternalError and can be used to create server errors.
ErrNotAuthenticated can be returned if an unauthenticated user attempts to access a restricted endpoint.
ErrNotAuthorised can be returned if a user attempts to access something they don't have access to.
ErrNotAvailable can be returned if an aspect of a service is not available, for example a database.
ErrNotFound can be returned if something is accessed that doesn't exist or has been deleted.
ErrRetryable can be returned if you reach a condition where an error occurred but it can be retried.
ErrTooManyRequests can be returned if you reach a condition where the system cannot handle any more requests due to a rate limit.
ErrUnprocessable can be returned if you reach a condition where the system cannot carry on.