Files
go-toml/README.md
T
2021-04-08 10:07:29 -04:00

1.4 KiB

go-toml V2

Development branch. Use at your own risk.

👉 Discussion on github.

  • toml.Unmarshal() should work as well as v1.

Must do

Unmarshal

  • Unmarshal into maps.
  • Support Array Tables.
  • Unmarshal into pointers.
  • Support Date / times.
  • Support struct tags annotations.
  • Support Arrays.
  • Support Unmarshaler interface.
  • Original go-toml unmarshal tests pass.
  • Benchmark!
  • Abstract AST.
  • Original go-toml testgen tests pass.
  • Track file position (line, column) for errors.
  • Strict mode.
  • Document Unmarshal / Decode

Marshal

  • Minimal implementation
  • 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?
  • 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.
  • Cache reflection operations per type.
  • Optimize tracker pass.

Differences with v1

License

The MIT License (MIT). Read LICENSE.