JuliaData / StructTypes.jl

Abstract definitions and convenience methods for describing, processing, and constructing Julia objects
https://juliadata.github.io/StructTypes.jl/stable/
MIT License
80 stars 22 forks source link

allow for arbitrary key types by serializing keys aswell #55

Open rapus95 opened 3 years ago

rapus95 commented 3 years ago

Right now I have some project where I build a very small database by using a Dict that maps singleton types to arbitrary types.

for example:

abstract type BaseType end
struct Sub1 <: BaseType end
struct Sub2 <: BaseType end

tmp = Dict(Sub1()=>"5", Sub2()=>10)

what I'm looking for right now is to have a proper way of serializing and deserializing that. Hooking into the abstract type machinery for BaseType didn't help at all. So I wonder, why don't we have the full StructTypes machinery enabled for all types that currently aren't supported as keys? To me that would be a perfectly valid generalization of the current approach given that the currently supported types, Symbol, String and Int64 are mapped per identity rn afaik.