Implement RelTypes module for user- and system-defined (de)serialization hooks #77
+232
−9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a
RelTypes
module that exports two methods:JuliaType
andfrom_rel
. These can be used to register type conversions from Rel ValueTypes to native Julia types. Currently only from Rel and not to Rel is supported. Conversion does not happen eagerly but rather on read-time. Currently, onlyshow_result
will show the converted types.To register a conversion, we have to create an overload of the
JuliaType
method. It takes three parameters:Val
containing the markers of the value type, such as(:MyInt,)
, or(:MyType, :foo, :bar)
. The first element is always the Rel name of the value type.Tuple{Int64,Int64}
in the case ofvalue type MyInt = Int, Int
. It's either a single type or a tuple type.value type MyInt = #(1), Int, Int
.Here is an example:
There are a few things left:
Column
creation inresults.jl