CosmicHorrorDev / CosmicHorrorDev/vdf-rs

v0.3 Release Wishlist

Open
#61 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
46
Forks
5
PR merge metrics
No merged PRs in 30d

Description

## `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 (#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)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.