Skip to content

v0.3 Release Wishlist #61

Description

@CosmicHorrorDev

keyvalues-parser

  • Split the error type into separate parse/render errors (akin to serde's ser/de errors)
  • Add more context to the parse error including tracking line+col of the error (Enrich Error Information #15)
  • Rename Vdf -> Pair, PartialVdf -> TopLevelPair
  • Have TopLevelPair directly hold a pair instead of storing the same fields
  • Switch parse entry point to parse() and parse_with_opts() where Opts can toggle raw mode, and the object recursion limit. This makes the "default" usage clear while still giving configurability
  • Prune away most of the typedefs
  • Rename obj stuff to map?
  • Restructure the API to nest by general type (pair, map, etc.) instead of the current mishmash
  • Macro strings can be changed from cows to strs

keyvalues-serde

  • Go through and prune what's exposed as public
  • Have configuration knobs for the parser's opts on the Serializer and Deserializer akin to serde_json
  • Figure out how we want to expose parser opts
  • Consider re-exporting the parser

General

  • Run the fuzzers at least overnight
  • Drop dtolnay/rust-toolchain in favor of using the already installed rustup
  • Switch publishing to use a scoped crates.io token now that those are a thing
  • Add support for unit types and unit struct by treating them the same as null is for TOML (explicitly omitted)?

v0.3.x

keyvalues-parser

  • Add a pretty parse error display that renders against the original text (store an error span and the original text)
  • Avoid stack overflows when parsing arbitrarily nested objects (e.g. a{a{a{a{a{...) by including a default recursion limit

keyvalues-serde

  • Reconsider supporting enums depending on how the type inference shakes out for it (we're not quite a self-describing format due to very limited type info)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions