Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic implementation for ODM parsing #37

Merged
merged 150 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from 148 commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
aace090
Add generated xml-schema-derive results
matzipan Jan 2, 2024
f6af862
Fix whitespace
matzipan Jan 2, 2024
e1f3fe2
Fix namespaces and imports
matzipan Jan 2, 2024
37845c7
Fix imports
matzipan Jan 2, 2024
04e00e6
Fix type namespaces
matzipan Jan 2, 2024
48fe90f
Remove custom list serde
matzipan Jan 2, 2024
b643045
Implement choice types
matzipan Jan 4, 2024
361502e
Add copyright headers
matzipan Jan 20, 2024
a3f8ffd
Patch out wrong type refs
matzipan Jan 21, 2024
b0a36d5
Make field publicly editable
matzipan Jan 21, 2024
7608368
Add test for OEM
matzipan Jan 21, 2024
6989aec
Add OMM test
matzipan Jan 21, 2024
4dbea18
Making the same as in oem test
matzipan Jan 27, 2024
5444d8f
Fix test name
matzipan Jan 27, 2024
a3546f7
Simplify extension types
matzipan Jan 27, 2024
cef08ff
Add OEM test 2
matzipan Jan 27, 2024
c3193d6
Add OMM test 2
matzipan Jan 28, 2024
2da81aa
Add OMM message test with units
matzipan Jan 28, 2024
3346fd8
Add OMM message test 3
matzipan Jan 28, 2024
566f16d
Clarify empty_object_id test
matzipan Jan 28, 2024
44a16e7
Make types as float
matzipan Jan 28, 2024
f5e3bb4
Add omm message 3 test
matzipan Jan 28, 2024
c901da8
Add test for spurious corrupted data
matzipan Jan 28, 2024
1868b58
Add opm test
matzipan Jan 28, 2024
265b162
Add OCM test
matzipan Jan 29, 2024
04564d0
Add OPM invalid message test
matzipan Jan 29, 2024
b28c9e0
Make the OMM message test a bit more complicated
matzipan Jan 29, 2024
b960061
Add user defined parameters to list
matzipan Jan 29, 2024
4684beb
Add keplereian elements to OPM message test
matzipan Jan 29, 2024
9762c29
Add maneuver parameters to opm test
matzipan Jan 29, 2024
59d8240
Add combined NDM element
matzipan Feb 17, 2024
7deb4de
Rename folder to ndm
matzipan Feb 17, 2024
1c52c50
Implement support for mixed sequences
matzipan Feb 17, 2024
a6bf208
Move the xml parser to its own folder
matzipan Mar 19, 2024
2b8a8e9
Implement OMM JSON parsing
matzipan Mar 19, 2024
d70e6fb
Expand test and add support for string numbers
matzipan Mar 21, 2024
7e83e2c
Initial KVN parser
matzipan Mar 31, 2024
d23754d
Implement units
matzipan Mar 31, 2024
73c0815
Add some negative tests for kvn parser
matzipan Mar 31, 2024
2da47cb
Allow flexibility for whitespace at start
matzipan Mar 31, 2024
8427117
Change the parser to not be line-aware
matzipan Mar 31, 2024
587c428
Add COMMENT parsing
matzipan Mar 31, 2024
3e35e6e
Implement KVN date parser
matzipan Apr 17, 2024
8a1f900
Implement integer line support
matzipan Apr 19, 2024
b6e6f6c
Test parsing an invalid integer
matzipan Apr 19, 2024
7da8259
Implement float ODM parsing
matzipan Apr 19, 2024
4af1429
Add copyright header
matzipan Apr 29, 2024
3918cf6
Implement deserializer proc macro
matzipan Apr 29, 2024
874ec8a
Move KVN parser to separate file
matzipan Apr 29, 2024
7fb1d7e
Add missing copyright header
matzipan Apr 29, 2024
3152734
Implement option type
matzipan May 2, 2024
8ee3512
Implement vec type deserializer
matzipan May 9, 2024
87f304b
Use vec for OPM comment field
matzipan May 9, 2024
36c4a39
Reorganize the tests a little bit
matzipan May 9, 2024
603c163
Add support for structs in options
matzipan May 9, 2024
a8c6812
Fix non-nested structs
matzipan May 9, 2024
99d6316
Parse a complete OPM message
matzipan May 9, 2024
da9924a
Add support for _list suffix for vecs
matzipan May 11, 2024
b75c64a
Add _list suffix to opm vecs
matzipan May 11, 2024
7b61b2c
Update test expectation
matzipan May 11, 2024
c7ed371
Make error types more descriptive
matzipan May 11, 2024
075e673
Update syn crate
matzipan May 13, 2024
1c97923
Implement struct deserialization
matzipan May 21, 2024
a9ca33b
Implement support for tuple struct
matzipan May 21, 2024
73a97c8
Clean-up string type
matzipan May 28, 2024
31e9801
Simplify the wrapped types
matzipan May 28, 2024
44a8634
Make the XML metadata optional
matzipan May 28, 2024
5dad810
Remove leftover println
matzipan May 28, 2024
bda9175
Remove commented out parser
matzipan May 28, 2024
16b52be
Enable returning full string value for datetime
matzipan May 28, 2024
164233d
Implement relaxed parsing of strings
matzipan May 28, 2024
01f3de9
Remote test for old-style parsing
matzipan May 28, 2024
612b131
Enable KVN deserializer on OPM structs
matzipan May 28, 2024
80e033c
Remove old OPM parser
matzipan May 28, 2024
0b5e261
Add temp parser for comment
matzipan May 28, 2024
1577021
Remove the old style parsing functions
matzipan May 28, 2024
de69cd1
Implement OPM parsing with XML struct
matzipan May 28, 2024
8947f09
Implement OMM and OCM KVN parsers
matzipan May 30, 2024
9b2b2b1
Fix formatting
matzipan May 30, 2024
00e9f80
Add back a todo
matzipan May 30, 2024
4aaee44
Relax parsing of string inputs
matzipan May 30, 2024
2dc1543
Add some todos to the code
matzipan May 30, 2024
9b17004
Add tests for COMMENT parsing
matzipan Jun 3, 2024
e0f546c
Remove keyword from error type
matzipan Jun 3, 2024
16add1b
Implement InvalidFormat and EmptyKeyword detection
matzipan Jun 3, 2024
e15c4e3
Extend number tests
matzipan Jun 3, 2024
ddd0eaf
Add empty value check for string
matzipan Jun 3, 2024
cf0d4a9
Expand datetime test
matzipan Jun 3, 2024
a138c26
Remove todo from fixed test
matzipan Jun 3, 2024
d9d11b8
Fix formatting
matzipan Jun 3, 2024
1664f59
Clean-up todos
matzipan Jun 3, 2024
04c9822
Add support for version field
matzipan Jun 3, 2024
410c4a5
Enable OMM test
matzipan Jun 3, 2024
6372a15
Clean-up imports
matzipan Jun 4, 2024
737875e
Fix crate name case
matzipan Jun 4, 2024
8324b5f
Add missing test cfg annotation
matzipan Jun 4, 2024
e7cbbda
Fix formatting
matzipan Jun 4, 2024
556407b
Make clippy happy
matzipan Jun 4, 2024
dc3654e
Remove leftover trailing whitespace
matzipan Jun 4, 2024
2016c37
Remove file leftover from merge resolve
matzipan Jun 4, 2024
6a07840
Move ndm parsing to lox-io
matzipan Jun 4, 2024
a2dc3fc
Fix type inference for into
matzipan Jun 4, 2024
2931bdf
Remove unused variable
matzipan Jun 4, 2024
66347b0
Make clippy happy
matzipan Jun 6, 2024
da7fe28
Fix unused with_unit
matzipan Jun 6, 2024
50f320d
Ignore proc macro from coverage
matzipan Jun 6, 2024
08caa53
Move user-facing classes into the main namespace
matzipan Jun 6, 2024
f3b8471
Remove superfluous types
matzipan Jun 6, 2024
d5da926
Restructure public interface
matzipan Jun 6, 2024
f3991cb
Add submodule rustdoc
matzipan Jun 6, 2024
c7afe4d
Add missing copyright header
matzipan Jun 6, 2024
8d20e70
Remove debug println
matzipan Jun 6, 2024
70f7a30
Reexport the KVN deserializer types
matzipan Jun 6, 2024
c171361
Add module docs
matzipan Jun 6, 2024
f9469d7
Clean-up string type
matzipan Jun 7, 2024
0a0a5b4
Derive KVN deserialization code
matzipan Jun 7, 2024
b785554
Make the parser visible in the crate
matzipan Jun 7, 2024
81d0d22
Simplify the wrapped types
matzipan Jun 7, 2024
d492e17
Make the id value optional for KVN
matzipan Jun 7, 2024
9dc20fe
Add KVN parsing tests
matzipan Jun 7, 2024
6227010
Simplify parsing imports
matzipan Jun 7, 2024
78c57e3
Add doc tests
matzipan Jun 7, 2024
b69c7b5
Indicate module is for combined instantiation
matzipan Jun 7, 2024
5614ccc
Make list order match the nested match
matzipan Jun 7, 2024
5af75bb
Remove special case the EpochType
matzipan Jun 7, 2024
e370420
Simplify version field handling by reodering
matzipan Jun 7, 2024
a8cb41b
Add whitespace to fix false positives
matzipan Jun 7, 2024
4ff7581
Simplify unamed fields handling
matzipan Jun 7, 2024
ecc2669
Fix usage of date time parser
matzipan Jun 7, 2024
ec9c806
Change date format
matzipan Jun 7, 2024
9dfe3b2
Document KVN parsers
matzipan Jun 7, 2024
b27b600
Document relaxations and limitations
matzipan Jun 7, 2024
6f5a963
Hide doctest line
matzipan Jun 7, 2024
0826e20
Remove unused types
matzipan Jun 9, 2024
1f34726
Make error payload an owned string
matzipan Jun 14, 2024
5f21909
Add _list suffix for consistency
matzipan Jun 14, 2024
ebb19b2
Add new line at end of file
matzipan Jun 14, 2024
ffffd00
Make KvnDeserializerErr cloneable
matzipan Jun 14, 2024
0297098
Add Error derive
matzipan Jun 14, 2024
5ddb3b2
Make single-variant enum into struct
matzipan Jun 14, 2024
b6abdbf
Fix typo in rustdoc
matzipan Jun 14, 2024
2be3c31
Expand KVN spec comment
matzipan Jun 17, 2024
0baf952
Clean-up extra commas
matzipan Jun 17, 2024
08cfc1f
Make the check more idiomatic
matzipan Jun 17, 2024
eb9a2ea
Fix comment wrap
matzipan Jun 18, 2024
15f0ab2
Encapsulate the quickxml deserialization
matzipan Jun 18, 2024
fd160ed
Add trait for XML deserialization
matzipan Jun 18, 2024
bd2a675
Encapsulate kvn string split
matzipan Jun 18, 2024
acaecdb
Explain it is generated code
matzipan Jun 20, 2024
7ca1fb0
Remove superfluous lifetimes to get clippy happy
matzipan Jun 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
289 changes: 276 additions & 13 deletions Cargo.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@ lox-io = { path = "crates/lox-io" }
lox-space = { path = "crates/lox-space" }
lox-time = { path = "crates/lox-time" }
lox-utils = { path = "crates/lox-utils" }
lox-derive = { path = "./crates/lox-derive" }

csv = "1.3.0"
divan = "0.1.14"
dyn-clone = "1.0.17"
fast-float = "0.2.0"
fast_polynomial = "0.1.0"
float_eq = "1.0.1"
glam = "0.25.0"
Expand All @@ -31,7 +33,10 @@ nom = "7.1.3"
num = "0.4.1"
proptest = "1.4.0"
pyo3 = "0.21.1"
quick-xml = { version = "0.31.0", features = ["serde", "serialize"] }
regex = "1.10.4"
rstest = "0.18.2"
serde = { version = "1.0.199", features = ["derive"] }
serde-aux = "4.5.0"
serde_json = "1.0.113"
thiserror = "1.0"
5 changes: 5 additions & 0 deletions codecov.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ignore:
# This code is tested indirectly with high coverage but coverage tools don't
# handle proc macros
- "crates/lox-derive/src/lib.rs"

12 changes: 12 additions & 0 deletions crates/lox-derive/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "lox-derive"
version = "0.1.0"
edition = "2021"

[lib]
proc-macro = true

[dependencies]
proc-macro2 = "1.0.81"
quote = "1.0.20"
syn = "2.0.63"
Loading
Loading