pub enum Version {
Show 14 variants
V2_1,
V2_2,
V2_3,
V2_3_1,
V2_4,
V2_5,
V2_5_1,
V2_6,
V2_7,
V2_7_1,
V2_8,
V2_8_1,
V2_8_2,
V2_9,
}Expand description
A published release of HL7 v2.
Ordering follows release order, so Version::V2_3 < Version::V2_3_1,
which is what makes “nearest older release” a comparison rather than a
table.
Variants§
V2_1
HL7 v2.1 (1990).
V2_2
HL7 v2.2 (1994).
V2_3
HL7 v2.3 (1997).
V2_3_1
HL7 v2.3.1 (1999), which introduced MSH-9.3, the message structure.
V2_4
HL7 v2.4 (2000).
V2_5
HL7 v2.5 (2003). This crate’s base dictionary and its default.
V2_5_1
HL7 v2.5.1 (2007), the release most US interfaces still speak.
V2_6
HL7 v2.6 (2007).
V2_7
HL7 v2.7 (2011).
V2_7_1
HL7 v2.7.1 (2012).
V2_8
HL7 v2.8 (2014).
V2_8_1
HL7 v2.8.1 (2014).
V2_8_2
HL7 v2.8.2 (2015).
V2_9
HL7 v2.9 (2019).
Implementations§
Source§impl Version
impl Version
Sourcepub fn parse(text: &str) -> Option<Version>
pub fn parse(text: &str) -> Option<Version>
The release named exactly by text, or None. Use
Version::nearest when reading a real message, where a version
string this crate does not know should degrade rather than fail.
Sourcepub fn nearest(text: &str) -> Option<Version>
pub fn nearest(text: &str) -> Option<Version>
The best release to read text as: the exact match if there is one,
otherwise the newest known release no newer than text, otherwise
(for a version older than everything, or unreadable) None.
Reading 2.5.2 as 2.5.1 is right far more often than it is wrong: point releases are additive, so the older dictionary names what it knows and the rest degrades to generic positional names, which is exactly the fallback the unknown-segment case already takes.
Sourcepub fn from_message(message: &Message) -> Option<Version>
pub fn from_message(message: &Message) -> Option<Version>
The release a parsed message declares in MSH-12.1, resolved through
Version::nearest. None when MSH-12 is absent or unreadable.
Sourcepub fn dictionary(self) -> Arc<Dictionary> ⓘ
pub fn dictionary(self) -> Arc<Dictionary> ⓘ
The bundled dictionary for this release.
Parsed on first use and shared thereafter; the returned Arc is
cheap to clone and is what a crate::Message holds.
§Panics
Never in practice: the bundled dictionaries are embedded at compile time and parsed on first use, so a failure here would mean this crate shipped a malformed one.