//! Admission of a delivery roster against its owner-built topology and temporal order.
usesuper::{TranscriptEntry, TranscriptRefusal};usecrate::network::simulation::{Tick, Topology};/// Whether every row belongs to the topology, no delivery precedes its own send, and the stamps never step backward.
pub(super)fnlawful_entries(topology:&Topology,
entries:&[TranscriptEntry],
)->Result<(), TranscriptRefusal>{if entries.is_empty(){returnErr(TranscriptRefusal::NoDelivery);}letmut latest =Tick::at(0u64);for(at, entry)in entries.iter().enumerate(){if!topology.links().contains(&entry.link()){returnErr(TranscriptRefusal::ForeignLink { at });}if entry.delivered_at()< entry.sent_at(){returnErr(TranscriptRefusal::DeliveryBeforeSend { at });}if entry.delivered_at()< latest {returnErr(TranscriptRefusal::DeliveryOrderBroken { at });}
latest = entry.delivered_at();}Ok(())}