<div dir="ltr"><div class="gmail-adn gmail-ads" style="border-left:none;padding:0px;display:flex;font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:medium"><div class="gmail-gs" style="margin:0px;padding:0px 0px 20px;width:944px"><div class="gmail-"><div id="gmail-:qf" class="gmail-ii gmail-gt" style="font-size:0.875rem;direction:ltr;margin:8px 0px 0px;padding:0px"><div id="gmail-:qe" class="gmail-a3s gmail-aXjCH" style="overflow:hidden;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:small;line-height:1.5;font-family:Arial,Helvetica,sans-serif"><div dir="ltr"><div>Hi all,</div><div><br></div><div>Thank you for the discussions at QtCS19!</div><div>The notes regarding the session on serialization are on the wiki:</div><div><a href="https://wiki.qt.io/Rethinking_serialization_for_Qt6" target="_blank">https://wiki.qt.io/Rethinking_serialization_for_Qt6</a>  <br></div><div><br></div><div>To summarize:<br></div><div>- Although it seemed strange to many people, it is possible to provide an API so that a single T::zap() method can read/write T instances to many different Qt APIs : Json, Cbor, Xml, and even QAbstractItemModel to interact with SQL tables, TableView and TreeView widgets.</div><div>- When QMetaObject is available, serialization to/from these Qt APIs can be done 

automatically 

using reflection.</div><div>- This API is a little bit like an external protobuf schema except it does not require external tools and does not need to generate intermediate data structures.</div><div>- It provides simpler and safer read/write to these Qt APIs, easy customization similar to Python list comprehensions, and a lot of flexibility in choosing data formats, so that the very small runtime overhead is usually negligible.</div><div><br></div><div>Action items :</div><div>- Thiago recognized that this kind of API would be valuable to Qt users but at least the naming is problematic, so he should provide feedback before it can be pushed to and reviewed on gerrit</div><div>- Other contributors can review the initial Qt proposal on github:</div><div><a href="https://github.com/arnaud-clere/qtbase/compare/63a1a30a014eb75a67c390a16faa9aeb03a4a012...HEAD" target="_blank">https://github.com/arnaud-clere/qtbase/compare/63a1a30a014eb75a67c390a16faa9aeb03a4a012...HEAD</a> <br></div><div>or the proof of concept and benchmark on the original research project:</div><div><a href="https://gricad-gitlab.univ-grenoble-alpes.fr/modmed/modmedLog/tree/master/tests/QBind">https://gricad-gitlab.univ-grenoble-alpes.fr/modmed/modmedLog/tree/master/tests/QBind</a>  <br></div><div><br></div><div>Cheers,</div><div>Arnaud</div><div class="gmail-yj6qo"></div><div class="gmail-adL"><br></div></div><div class="gmail-adL"></div></div></div><div class="gmail-hi" style="border-bottom-left-radius:1px;border-bottom-right-radius:1px;padding:0px;width:auto;background:rgb(242,242,242);margin:0px"></div></div></div><div class="gmail-ajx" style="clear:both"></div></div><div class="gmail-gA gmail-gt gmail-acV" style="font-size:0.875rem;padding:0px;width:auto;border-bottom-left-radius:0px;border-bottom-right-radius:0px;border-top:none;margin:0px;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif"><div class="gmail-gB gmail-xu" style="border-top:0px;padding:0px"><div class="gmail-ip gmail-iq" style="clear:both;margin:0px;padding:16px 0px;border-top:none"><div id="gmail-:qg"><table class="gmail-cf gmail-wS" style="border-collapse:collapse"><tbody><tr><td class="gmail-amq" style="padding:0px 16px;vertical-align:top;width:44px"><img id="gmail-:pb_4" name=":pb" src="https://www.google.com/s2/u/0/photos/public/AIbEiAIAAABECJmg8drE6c7cggEiC3ZjYXJkX3Bob3RvKig5Mjg4OGE5NTU1MDFiZGJhMGM0MDE2YzAyOGZmM2ZjMDg5ZDJlY2IzMAEKINqYbuAEYwqXXI6GZWTXWxAAyQ?sz=40" class="gmail-ajn gmail-bofPge" style="display: block; width: 40px; height: 40px; border-radius: 50%;"></td><td class="gmail-amr" style="padding:0px;width:944px"><div class="gmail-nr gmail-wR" style="box-sizing:border-box;border-radius:1px;padding:0px;border:none;margin:0px"><div class="gmail-amn" style="color:inherit;height:auto;padding:0px;display:flex;line-height:20px"><span id="gmail-:q6" tabindex="0" class="gmail-ams gmail-bkH" style="border:none;display:inline-flex;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:0.875rem;letter-spacing:0.25px;background:none;border-radius:4px;box-sizing:border-box;color:rgb(95,99,104);height:36px;outline:none;padding:0px 16px 0px 12px;min-width:104px;margin-right:12px">Répondre</span><span id="gmail-:qj" tabindex="0" class="gmail-ams gmail-bkG" style="border:none;display:inline-flex;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:0.875rem;letter-spacing:0.25px;background:none;border-radius:4px;box-sizing:border-box;color:rgb(95,99,104);height:36px;outline:none;padding:0px 16px 0px 12px;min-width:104px;margin-right:12px">Transférer</span></div></div></td></tr></tbody></table></div></div></div></div></div>