Check the documentation for more details.
- Provides two top-level parsing functions:
parse
andloose_parse
.loose_parse
is less strict on the format of the incoming EDI document. - Parses a valid X12 EDI document into a struct called
EdiDocument
. - Provides verbose error messages if the document being parsed is invalid.
- Error messages include the actual segment in which the error occurred.
EdiDocument
and all data it contains implementSerialize
andDeserialize
fromserde
, so zero-copy serialization and deserialization to any serde-able format is supported (this includes json).EdiDocument
's fields are all public and it can be navigated like any other struct for simplicity
See the examples directory for an example.
- Cannot accurately determine segment types, as that requires an implementation guide from the individual transactor
- Cannot detect loops for the same reason as above
- Only supports standard X12 EDI
- benches to identify regressions
- output back into EDI with proper padding in the ISA segment
- iterator over segments for the frequent cases in which there's only one transaction/functional group/interchange (EdiDocument.segments_iter() -> SegmentIter?)
- to_string(delimiters) is needed to output the edi document