//! Sequence numbers. use duplicate::duplicate_item;
/// Exhausted the available sequence numbers. #[derive(Clone, Debug, thiserror::Error)] #[error("Sequence number would overflow")] pubstruct SequenceNumberOverflow;
/// A sequence number value, safely yielded by calling [`SequenceNumberU32::get_and_increment`] resp. /// [`SequenceNumberU64::get_and_increment`]. pub(crate) struct SequenceNumberValue<T>(pub(crate) T);
/// Return the next sequence number (i.e. the current value plus one). Increases the internal /// value by one. /// /// # Errors /// /// Return a [`SequenceNumberOverflow`] if the increment would result in an overflow. pub(crate) fn get_and_increment(
&mutself,
) -> Result<SequenceNumberValue<value_type>, SequenceNumberOverflow> { let next = self.value; self.value = self.value.checked_add(1).ok_or(SequenceNumberOverflow)?;
Ok(SequenceNumberValue(next))
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-22)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.