Files
go-toml/README.md
T
2021-04-20 21:26:22 -04:00

59 lines
1.4 KiB
Markdown

# go-toml V2
Development branch. Use at your own risk.
[👉 Discussion on github](https://github.com/pelletier/go-toml/discussions/471).
* `toml.Unmarshal()` should work as well as v1.
## Must do
### Unmarshal
- [x] Unmarshal into maps.
- [x] Support Array Tables.
- [x] Unmarshal into pointers.
- [x] Support Date / times.
- [x] Support struct tags annotations.
- [x] Support Arrays.
- [x] Support Unmarshaler interface.
- [x] Original go-toml unmarshal tests pass.
- [x] Benchmark!
- [x] Abstract AST.
- [x] Original go-toml testgen tests pass.
- [x] Track file position (line, column) for errors.
- [x] Strict mode.
- [ ] Document Unmarshal / Decode
### Marshal
- [x] Minimal implementation
- [x] Multiline strings
- [ ] Multiline arrays
- [ ] `inline` tag for tables
- [ ] Optional indentation
- [ ] Option to pick default quotes
### Document
- [ ] Gather requirements and design API.
## Ideas
- [ ] Allow types to implement a `ASTUnmarshaler` interface to unmarshal
straight from the AST?
- [x] Rewrite AST to use a single array as storage instead of one allocation per
node.
- [ ] Provide "minimal allocations" option that uses `unsafe` to reuse the input
byte array as storage for strings.
- [x] Cache reflection operations per type.
- [ ] Optimize tracker pass.
## Differences with v1
* [unmarshal](https://github.com/pelletier/go-toml/discussions/488)
## License
The MIT License (MIT). Read [LICENSE](LICENSE).