Serialization library candidate review request

GrimMaple grimmaple95 at gmail.com
Sun Aug 27 19:39:05 UTC 2023


Hello everyone! When my https://github.com/dlang/phobos/pull/8662 
predictably failed, I moved on to create a common serialization 
library instead that could later on be included in phobos. So I 
would like to request a review from you to get it to a decent 
state. If interested, you can find the code 
[here](https://github.com/GrimMaple/mud/tree/v0.3.0/source/mud/serialization), and if you want to use it with dub you can use `"mud": "~>0.3.0"`.

Code contains two files: package.d to ease making serializators, 
and json.d is an example serializator from/to json. Please 
consider this example to see how it works in general:
```
     struct Foo
     {
         // Works with or without brackets
         @serializable int a = 123;
         @serializable() double floating = 123;
         @serializable("flag") bool check = true;
     }

     // Will produce `{"a":123,"floating"=123,"flag"=true}`
     serializeToJSONString(Foo());
```

If you're interested in making a custom serializator, here's a 
rough idea on how it's going to be implemented with this library:
```d
foreach(alias prop; readableSerializables!T)
{
     enum name = getSerializableName!prop;
     // Work your magic here
}
```

I tried to make it as universal as I could, but any suggestions 
are welcome for a discussion.


More information about the Digitalmars-d mailing list