pub enum PropertyValue {
Show 15 variants
Null,
Boolean(bool),
Unsigned(u64),
Signed(i32),
Real(f32),
Double(f64),
OctetString(Vec<u8>),
CharacterString(String),
BitString {
unused_bits: u8,
data: Vec<u8>,
},
Enumerated(u32),
Date(Date),
Time(Time),
ObjectIdentifier(ObjectIdentifier),
List(Vec<PropertyValue>),
ApplicationData(Vec<u8>),
}Expand description
A BACnet application-layer value.
This enum covers all primitive value types that can appear as property
values in BACnet objects. Constructed types (lists, sequences) are
represented as nested structures. Only with alloc: it owns its strings
and lists.
Variants§
Null
Null value.
Boolean(bool)
Boolean value.
Unsigned(u64)
Unsigned integer (up to 64-bit for BACnet Unsigned64).
Signed(i32)
Signed integer.
Real(f32)
IEEE 754 single-precision float.
Double(f64)
IEEE 754 double-precision float.
OctetString(Vec<u8>)
Octet string (raw bytes).
CharacterString(String)
Character string (UTF-8).
BitString
Bit string (variable length).
Enumerated(u32)
Enumerated value.
Date(Date)
Date value.
Time(Time)
Time value.
ObjectIdentifier(ObjectIdentifier)
Object identifier.
List(Vec<PropertyValue>)
A sequence (array) of property values.
Used when reading an entire array property with arrayIndex absent
(Clause 15.5.1). Each element is encoded as its own application-tagged
value, concatenated in order.
ApplicationData(Vec<u8>)
Raw, already-encoded application-layer bytes for a property whose wire
form is a context-tagged (CHOICE/SEQUENCE) production that the flat
application-tagged model above cannot express — e.g. a framed
BACnetEventParameter or a Recipient_List of BACnetDestination.
The bytes are emitted verbatim by
bacnet_encoding::primitives::encode_property_value and are produced
by decode_application_value when it encounters a context-tagged
element; they always span exactly one complete tagged element,
including its context tag header(s). Objects that serve structured
properties decode these with the matching framed codec in
bacnet-encoding; a property writer that is not expecting this variant
should reject it as INVALID_DATA_TYPE.
Implementations§
Source§impl PropertyValue
impl PropertyValue
Sourcepub fn is_primitive(&self) -> bool
pub fn is_primitive(&self) -> bool
Whether this is a value of a primitive datatype, one application tag
on the wire: every variant except List and ApplicationData.