-
Everywhere
- Switch back to using nom now that the new version has been released
- Logging
- Add line numbers to errors
- Add documentation to public enums, structs, functions, methods and macros - In progress
- Switch names of TOMLValue and Value
- Rename Parser to TOMLParser
-
primitives.rs
- Implement get_keychain_key
- Implement get_full_key
- Implement get_key_parent
- Change Key::Str to just hold an &'a str again
- Fix DateTime to allow only Date, only DateTime (no fractional seconds), only DateTime (with fractional seconds), Full DateTime with offset
- Change TimeOffset::Z to TimeOffset::Zulu?
- Change '+'/'-' to enum
- Inserting a value insert's its key in it's parent's children
- Re-implement get_array_table_key to take into account implicit tables are always standard tables
- DateTime validation
-
ast/structs.rs
- Re-implement HashValue to have a list of children or max index of children
- Fix DateTime to allow only Date, only DateTime (no fractional seconds), only DateTime (with fractional seconds), Full DateTime with offset
- Change TimeOffset::Z to TimeOffset::Zulu?
- Change '+'/'-' to enum
-
objects.rs
- In array_table when adding to existing table get_key_parent and add the new index as a child in the map, then add full_key to the map with None value
- Fix add_implicit_tables
- In array_table if table keys imply subtables that don't exist, add the implied tables as std_tables to the map with None value and add add their subkeys as children (partially done)
- In std_table if table keys imply subtables that don't exist, add the implied tables as std_tables to the map with None value and add add their subkeys as children
- In array_table if get_key_parent exists and has no indexed children, then it is an error (see toml-test/invalid/table_array_implicit)
- In array_table when encountering a new table that isn't a subtable of the last table, rebuild last_array_tables and last_array_tables_index by starting at the first subkey, looking up it's children and so-on, if the array_table already exists
- In array_table always add new table to map with None value
- In std_table always add new table to map with None value
- In array_value insert_key_val_into_map
-
parser.rs
- Change Key::Str to just hold a Str
- Implement reconstructing InlineTables and Arrays with different structures than previous values
- Implement wiping out all keys and values of InlineTables and Arrays with changed structure
- Implement converting Value Arrays and InlineTables to TOMLValue Arrays and Tables
- Implement inserting new keys and values into map
- Implement inserting new Array or InlineTable value into AST
- Implement
get_errorsErrors are returned as part of pars result if there are any - TOMLValue parsing on set_value (currently set_value accepts whatever you give it). In progress, almost finished
- Implement get_children
- Convenience functions
- For creating Values, especially DateTime
- Combining a key and a subkey or index to a new key
- Add unit tests for getting values
- Add unit tests for getting sub-keys
- Add unit tests for setting values
- Add unit tests to check the map to make sure removed keys are gone
- Have parse return a tuple with the parser and the result
-
tests/assets.rs
- Add failure/error tests for invalid toml-test's
- Add toml/examples/example-v0.4.0.toml to success tests
-
tests/parser_tests.rs
- Add integration tests for parser:
- load a larger document -> validate
- do a bunch of gets -> validate
- do a bunch of get_children -> validate
- do a bunch of sets, then do a bunch of gets -> validate
- Add failure tests for the other 3 types of error
-
types.rs
- Log an error on a return result of Result::Err
- Add unit tests to convenience functions
- Add future error types to ParseError
- Add column number to all error types
- Add the invalid datetime string to the InvalidDateTime error