A phantom type for annotating database Actions with specific effects (e.g. Write or
Transactional). Effects can be composed through intersection types (e.g.
Write with Transactional. Backends declare all supported types to prevent execution
of unsupported features (e.g. scala.slick.memory.HeapBackend does not support
transactions). Further restrictions (like ensuring that all writes go to a master
database but reads can also be performed by a slave) can be enforced in user-level code.
A phantom type for annotating database Actions with specific effects (e.g.
Write
orTransactional
). Effects can be composed through intersection types (e.g.Write with Transactional
. Backends declare all supported types to prevent execution of unsupported features (e.g. scala.slick.memory.HeapBackend does not support transactions). Further restrictions (like ensuring that all writes go to a master database but reads can also be performed by a slave) can be enforced in user-level code.