1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! # EDI
//! This crate is for parsing and acting on EDI X12 documents. It exposes two main entry points for parsing:
//! `loose_parse()` and `parse()`. The strictest parsing mode is `parse()`, which parses a string and constructs
//! an [EdiDocument] in a zero-copy (almost -- more on that later) way. `loose_parse()` does the same thing, but
//! does not check and validate that segment closers (IEA, GE, SE) match their openers' ID or have the correct amount
//! of records.
//!
//! ## Zero Copy
//! Under the hood, this crate uses `std::borrow::Cow<&str>` for processing EDI documents. This means that if you are
//! not writing or mutating the document, it is zero copy. As soon as you write to or mutate any part of the `EdiDocument`,
//! that one part is copied. See the documentation for `std::borrow::Cow` for more details.
//!
//! ## Serialization
//! This crate also supports zero-copy serialization and deserialization via [`serde`](https://serde.rs). That means that this crate,
//! with the help of `serde`, also supports serialization to:
//! * YAML
//! * JSON
//! * Bincode
//! * Pickle
//! * TOML
//! * [and more...](https://serde.rs/#data-formats)
//!
//! # Getting Started
//! There are examples in the [examples directory](https://github.com/sezna/edi/tree/master/examples).
pub use EdiDocument;
pub use ;
pub use EdiParseError;
pub use FunctionalGroup;
pub use GenericSegment;
pub use InterchangeControl;
pub use Transaction;