Generates a Repository struct (or a custom name) with pub(super) visibility and derives [AcidRepositoryAccess]
super::AcidRepositoryAccess. Useful for reducing overall boilerplate in repository adapters.
Generates a Repository struct (or a custom name) with pub(super) visibility and derives [RepositoryAccess]
super::RepositoryAccess with either a postgres or mongo connection or both.
Takes in self and the closure and wraps it in a transaction. The code block must return
a Result<T, E>. The service that gets passed in the self parameter MUST have a repository field
that implements Atomic and AcidRepositoryAccess.