pub fn encode_timestamp_to_sink<S: EncodeSink + ?Sized>(
sink: &mut S,
tag_number: u8,
timestamp: &BACnetTimeStamp,
) -> Result<usize, SinkFull>Expand description
Append an outer context frame and its complete timestamp in one sink write.
This preserves encode_timestamp’s layout, including both nested
context-2 frames when a DateTime is enclosed by outer tag 2. It stages at
most sixteen output bytes. The bare encoder’s storage contract
applies to the entire outer frame, not separately to its markers and value.
The tag number keeps its existing unvalidated input behavior.
use bacnet_encoding::primitives::encode_timestamp_to_sink;
use bacnet_types::primitives::BACnetTimeStamp;
let mut storage = [0xA5; 7];
let mut tail = &mut storage[..];
let stamp = BACnetTimeStamp::SequenceNumber(256);
assert_eq!(encode_timestamp_to_sink(&mut tail, 15, &stamp)?, 7);
assert!(tail.is_empty());
assert_eq!(storage, [0xFE, 0x0F, 0x1A, 0x01, 0x00, 0xFF, 0x0F]);