Petite update:
- J'ai rajouté 2-3 informations faciles à grapiller dans le JSON:
- Usage de la HASH_FUNCTION ou non dans "use_hash_function".
- La position du bit si le BooleanByteWrapper est utilisé dans "boolean_byte_wrapper_position" (c'était parsé, mais j'avais oublié de l'inclure dans le JSON -_-)
- Taille du vecteur dans le cas où il a une taille constante (i.e. pas d'écriture de la taille avant d'écrire les valeurs) dans le champs "constant_length".
- Nom de la méthode utilisée pour écrire le typeId quand elle est utilisée dans "write_type_id_method" (je crois que c'est constant, mais j'ai accès à l'information et l'espace disque de coûte pas cher, donc j'inclus ça même si ça n'aura probablement pas d'utilité).
- Nom de la méthode utilisée pour écrire 0 ou 1 en fonction de si l'attribut est null ou pas dans "write_false_if_null_method" (pour l'instant les 2 seuls attributs comme ça sont dans "com/ankamagames/dofus/network/types/game/context/roleplay/fight/arena/ArenaRankInfos.as").
- Les dates sont un peu mieux normalisées dans "version".
- Apparition d'une section "default" à la racine du JSON, ce sont les valeurs par défaut utilisées pour les fields. En fonction des arguments passés à la ligne de commande, il y a 2 comportements:
- Si "-a", "--all" ou "--no-default" est passé, la section "default" n'est pas présente dans le JSON et toutes les entrées (même les vides) de chaque field sont inclues.
- Sinon (comportement par défaut donc), la section "default" est présente et chaque field est réduit en n'écrivant que les entrées qui sont différentes de la valeur par défaut encodée dans la section "default".
- Si le fichier de sortie n'est pas précisé, le JSON est affiché sur stdout. Par contre, les logs d'info, mais aussi les potentiels warnings résultants d'un problème de parsing quelque part sont aussi affichés sur stdout, à améliorer de mon côté, peut-être en affichant les logs (même les logs d'information) sur stderr.
- C'est dockerisé. Je n'ai pas encore setup de build automatique avec Gitlab, donc il vous faudra build par vous même pour l'instant, Tout est expliqué ici.
- Le tout accompagné d'un petit bump version en 0.2 pour les champs dans "version.parser". Notez que tant que la version majeure est à 0, je considère que des "breaking changes" (comprennez ici un changement du format du JSON de sortie) sont possibles à tout moment. Si breaking change il y a, la version changera dans tous les cas. En attendant que je considère le format suffisamment mature, seulement la verison mineure changera.