• @NewPerspective
    link
    1711 months ago

    TOML and YAML both have the problem that if you receive an incomplete document, there’s a decent chance you can’t tell. JSON doesn’t have that because of the closing curly.

    • @AMDmi3
      link
      2711 months ago

      That’s not a problem of a format and should be handled by transport or storage.

      • Turun
        link
        fedilink
        411 months ago

        It very much is an aspect of the format. You may deem it unimportant, but it’s a feature that is missing from toml and yaml.

        • @AMDmi3
          link
          4
          edit-2
          11 months ago

          It’s not a responsibly of the format, so, at most, it’s a mere side effect. In any practical process which could result with truncated data, even if it handles data with such property, it should be wrapped in a container which includes length. At the very least, it would allow to trace the source of truncation, e.g. was the data originally truncated, or was it truncated in the process, and change the format without shooting in oneselves foot. And the generating side should always provide success flag which should be properly handled, since it may produce syntactically correct, but semantically invalid data. Such as checking exit code of process which generates json/yaml in question

      • @NewPerspective
        link
        111 months ago

        What about processes that terminate before writing the whole thing? You can’t protect against everything. Blame other processes all you want but the language spec allows for confusion.

        • @AMDmi3
          link
          2
          edit-2
          11 months ago

          You just check the exit code, no? The other process may fail while generating syntactically correct data too, regardless of format.

    • @[email protected]
      link
      fedilink
      611 months ago

      Doesn’t YAML have a (seldom used) feature of a start and end of document marker? The “YAML frontmatter” that a few markdown documents have, uses this.