localcc / gvas

GVAS file format parsing library for rust
MIT License
19 stars 2 forks source link

Flatten MapProperty serde representation #52

Closed scottanderson closed 7 months ago

scottanderson commented 7 months ago

Before:

      {
        "type": "MapProperty",
        "key_type": "StrProperty",
        "value_type": "StrProperty",
        "allocation_flags": 0,
        "value": [
          [
            {
              "type": "StrProperty",
              "value": "Story/Campaign/index"
            },
            {
              "type": "StrProperty",
              "value": "c1.m18b.s2"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "music"
            },
            {
              "type": "StrProperty",
              "value": "music.lasthope"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "preferedEngine"
            },
            {
              "type": "StrProperty",
              "value": "HybridEngine"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "Option_settings.a.master"
            },
            {
              "type": "StrProperty",
              "value": "50.0%"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "Option_settings.a.music"
            },
            {
              "type": "StrProperty",
              "value": "50.0%"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "Option_settings.g.terrainres"
            },
            {
              "type": "StrProperty",
              "value": "tfactor.x2"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "Option_settings.dpiscale"
            },
            {
              "type": "StrProperty",
              "value": "120%"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "Option_settings.daytime"
            },
            {
              "type": "StrProperty",
              "value": "toggle.enabled"
            }
          ],
          [
            {
              "type": "StrProperty",
              "value": "preferedTrainColor"
            },
            {
              "type": "StrProperty",
              "value": "Crimson"
            }
          ]
        ]
      }

After:

      {
        "type": "MapProperty",
        "key_type": "StrProperty",
        "value_type": "StrProperty",
        "values": {
          "Story/Campaign/index": "c1.m18b.s2",
          "music": "music.lasthope",
          "preferedEngine": "HybridEngine",
          "Option_settings.a.master": "50.0%",
          "Option_settings.a.music": "50.0%",
          "Option_settings.g.terrainres": "tfactor.x2",
          "Option_settings.dpiscale": "120%",
          "Option_settings.daytime": "toggle.enabled",
          "preferedTrainColor": "Crimson"
        }
      }