A departure from CCSDS 503.0-B-2 the TDM reader forgave under a
Sidereon.CCSDS.TDM.Policy instead of refusing the message.
tag names the departure and decides which of the other fields are set; every
other field is nil:
:non_printable_character-line,keyword,column,character:line_too_long-line,keyword,length:repeated_keyword-line,keyword,section: a keyword repeated in one block with the same value, which the reader takes whatever the policy says, since both lines say the same thing.:missing_keyword-keyword,segment(nilfor the header):empty_data_section-segment:records_out_of_order-segment,keyword,epoch:duplicate_record-segment,keyword,epoch; both records are kept, in the order the message gives them.:keyword_out_of_order-line,keyword,section; in the:datasection, a comment after a record.:unterminated_final_line-line:unhandled- a departure this binding predates. Onlymessageis set, the core's own text; no other tag stands in for it.
line is the one-based input line, segment one-based, section :header,
:metadata or :data, and character a one-character string. message is
the core's text for the departure, carried beside the fields.
Summary
Types
@type t() :: %Sidereon.CCSDS.TDM.Warning{ character: String.t() | nil, column: pos_integer() | nil, epoch: String.t() | nil, keyword: String.t() | nil, length: non_neg_integer() | nil, line: pos_integer() | nil, message: String.t(), section: :header | :metadata | :data | String.t() | nil, segment: pos_integer() | nil, tag: tag() }
@type tag() ::
:non_printable_character
| :line_too_long
| :repeated_keyword
| :missing_keyword
| :empty_data_section
| :records_out_of_order
| :duplicate_record
| :keyword_out_of_order
| :unterminated_final_line
| :unhandled