serde_x12/
generic.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4pub struct GenericDocument {
5    pub segments: Vec<Segment>,
6}
7
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
9pub struct Segment {
10    pub name: String,
11    pub elements: Vec<Element>,
12}
13
14#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
15#[serde(untagged)]
16pub enum Element {
17    // Container has to come first
18    Container(Vec<String>),
19    Value(String),
20}