• Eager Eagle@lemmy.world
    link
    fedilink
    English
    arrow-up
    19
    ·
    11 months ago

    TOML is mainly for humans to write, certainly not a good choice if you’re programmatically writing files - comments and formatting would be lost.

    • Flipper@feddit.de
      link
      fedilink
      arrow-up
      6
      ·
      11 months ago

      It all depends on the library you use. Rust has you covered with toml_edit. It is what is used for all the cargo commands editing the Cargo.toml file.

    • brettvitaz
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      5
      ·
      edit-2
      11 months ago

      Agreed. Except that it’s not easier to write imo

        • brettvitaz
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          11 months ago

          For settings files I always have an example file with sensible values filled in and along with descriptive keys that serves as reasonable documentation. If something is truly unknowable, I’ve probably done something wrong.

          • spartanatreyu
            link
            fedilink
            arrow-up
            2
            ·
            11 months ago

            How would you mark a flag in your json settings file as deprecated?

            • brettvitaz
              link
              fedilink
              English
              arrow-up
              1
              ·
              11 months ago

              In my opinion, the settings file isn’t where this information should be presented. I would put these notes in the release log and readme and example settings file. I have also written this information to logging during startup so a user knows what to do, or I write a migration that does the change automatically if that’s possible.

              This is only my opinion and you can use the comment method described like //“: “Deprecated” if desired.

      • suy
        link
        fedilink
        arrow-up
        6
        ·
        11 months ago

        The very first moment that I had to use JSON as a configuration format, and I was desperate to find a way to make a long string into a JSON field. JSON is great for many things, but it’s not good at all for a configuration format where you need users to make it pretty, and need features like comments or multi-line strings (because you don’t want to fix a merge conflict in a 400 character-wide line).