#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub struct Set;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub struct Unset;
#[cfg(any(
feature = "utilmd",
feature = "mscons",
feature = "aperak",
feature = "contrl",
feature = "iftsta",
feature = "insrpt",
feature = "invoic",
feature = "orders",
feature = "partin",
feature = "reqote",
feature = "remadv",
feature = "ordchg",
feature = "ordrsp",
feature = "quotes",
feature = "comdis",
feature = "pricat",
feature = "utilts",
))]
pub(super) fn bytes_to_segments(
bytes: &[u8],
) -> Result<Vec<edifact_rs::OwnedSegment>, crate::Error> {
edifact_rs::from_bytes_owned(bytes)
.collect::<Result<_, _>>()
.map_err(crate::Error::Parse)
}
#[cfg(any(
feature = "utilmd",
feature = "mscons",
feature = "aperak",
feature = "iftsta",
feature = "insrpt",
feature = "invoic",
feature = "orders",
feature = "partin",
feature = "reqote",
feature = "remadv",
feature = "ordchg",
feature = "ordrsp",
feature = "quotes",
feature = "comdis",
feature = "utilts",
))]
pub(super) fn today_ccyymmdd() -> String {
let today = time::OffsetDateTime::now_utc().date();
let (y, m, d) = (today.year(), today.month() as u8, today.day());
format!("{y:04}{m:02}{d:02}")
}
#[cfg(any(
feature = "utilmd",
feature = "mscons",
feature = "aperak",
feature = "contrl",
feature = "iftsta",
feature = "insrpt",
feature = "invoic",
feature = "orders",
feature = "partin",
feature = "reqote",
feature = "remadv",
feature = "ordchg",
feature = "ordrsp",
feature = "quotes",
feature = "comdis",
feature = "pricat",
feature = "utilts",
))]
macro_rules! emit_seg {
($writer:expr, $tag:expr, $($elem:expr),+ $(,)?) => {{
let elements: &[&str] = &[$($elem),+];
$writer
.write_raw($tag, elements)
.map_err(|e| $crate::Error::Parse(e.into()))?;
}};
}
#[cfg(any(
feature = "utilmd",
feature = "mscons",
feature = "aperak",
feature = "contrl",
feature = "iftsta",
feature = "insrpt",
feature = "invoic",
feature = "orders",
feature = "partin",
feature = "reqote",
feature = "remadv",
feature = "ordchg",
feature = "ordrsp",
feature = "quotes",
feature = "comdis",
feature = "pricat",
feature = "utilts",
))]
macro_rules! emit_comp {
($writer:expr, $tag:expr, $([$($comp:expr),* $(,)?]),+ $(,)?) => {{
let elements: &[&[&str]] = &[$(&[$($comp),*]),+];
$writer
.write_composites($tag, elements)
.map_err(|e| $crate::Error::Parse(e.into()))?;
}};
}
mod interchange;
pub use interchange::{InterchangeBuilder, unb_qualifier};
#[cfg(feature = "utilmd")]
mod utilmd;
#[cfg(feature = "utilmd")]
pub use utilmd::{UtilmdBuilder, UtilmdTransactionBuilder};
#[cfg(feature = "mscons")]
mod mscons;
#[cfg(feature = "mscons")]
pub use mscons::{
MSCONS_UNITS, MeteringPointBuilder, MsconsBuilder, QTY_ENERGIE_SUMMIERT, QTY_ERSATZWERT,
QTY_WAHRER_WERT, is_valid_mscons_unit,
};
#[cfg(feature = "aperak")]
mod aperak;
#[cfg(feature = "aperak")]
pub use aperak::AperakBuilder;
#[cfg(feature = "contrl")]
mod contrl;
#[cfg(feature = "contrl")]
pub use contrl::ContrlBuilder;
#[cfg(feature = "iftsta")]
mod iftsta;
#[cfg(feature = "iftsta")]
pub use iftsta::IftstaBuilder;
#[cfg(feature = "insrpt")]
mod insrpt;
#[cfg(feature = "insrpt")]
pub use insrpt::InsrptBuilder;
#[cfg(feature = "invoic")]
mod invoic;
#[cfg(feature = "invoic")]
pub use invoic::InvoicBuilder;
#[cfg(feature = "orders")]
mod orders;
#[cfg(feature = "orders")]
pub use orders::OrdersBuilder;
#[cfg(feature = "partin")]
mod partin;
#[cfg(feature = "partin")]
pub use partin::PartinBuilder;
#[cfg(feature = "reqote")]
mod reqote;
#[cfg(feature = "reqote")]
pub use reqote::ReqoteBuilder;
#[cfg(feature = "remadv")]
mod remadv;
#[cfg(feature = "remadv")]
pub use remadv::RemadvBuilder;
#[cfg(feature = "ordchg")]
mod ordchg;
#[cfg(feature = "ordchg")]
pub use ordchg::OrdchgBuilder;
#[cfg(feature = "ordrsp")]
mod ordrsp;
#[cfg(feature = "ordrsp")]
pub use ordrsp::OrdrespBuilder;
#[cfg(feature = "quotes")]
mod quotes;
#[cfg(feature = "quotes")]
pub use quotes::QuotesBuilder;
#[cfg(feature = "comdis")]
mod comdis;
#[cfg(feature = "comdis")]
pub use comdis::ComdisBuilder;
#[cfg(feature = "pricat")]
mod pricat;
#[cfg(feature = "pricat")]
pub use pricat::{PricatBuilder, PricatLineItem, PricatPriceEntry, PricatPriceGroup};
#[cfg(feature = "utilts")]
mod utilts;
#[cfg(feature = "utilts")]
pub use utilts::{
UtiltsBuilder, UtiltsCalcStep, UtiltsDefinitionBlock, UtiltsEnergyAmountRef, UtiltsUsagePeriod,
UtiltsVorgang,
};