Convenience method to materialise the context bound and return a reference to it.
Convenience method to materialise the context bound and return a reference to it. This is somewhat shorter syntax than using implicitly.
The type of the primitive to retrieve.
A reference to a concrete materialised implementation of a primitive for the given type.
Derives primitives and encodings for a non standard type.
Derives primitives and encodings for a non standard type.
The type you want to derive a primitive for.
The source type of the primitive, must already have a primitive defined for it.
The function that converts a Target instance to a Source instance.
The function that converts a Source instance to a Target instance.
A new primitive that can interact with the target type.
Derives a primitive without implicit lookup in phantom itself.
Derives a primitive without implicit lookup in phantom itself. This is because the macro that empowers the implicit lookup for primitives cannot be used in the same compilation as the one its defined in.
The target type of the new primitive.
The type we are deriving from.
The function that converts the derived value to the original one.
The function that will convert an original value to a derived one.
Evidence that the source type is a Cassandra primitive.
A new primitive for the target type.
!! Warning !! Black magic going on.
!! Warning !! Black magic going on. This will use the excellent macro compat library to macro materialise an instance of the required primitive based on the type argument. If this does not highlight properly in your IDE, fear not, it works on my machine :)
The type parameter to materialise a primitive for.
A concrete instance of a primitive, materialised via implicit blackbox macros.