Skip to main content

nodedb_types/id/
request.rs

1// SPDX-License-Identifier: Apache-2.0
2
3use std::fmt;
4
5use serde::{Deserialize, Serialize};
6
7/// Globally unique request identifier. Monotonic per connection, unique for >= 24h.
8#[derive(
9    Debug,
10    Clone,
11    Copy,
12    PartialEq,
13    Eq,
14    Hash,
15    Serialize,
16    Deserialize,
17    zerompk::ToMessagePack,
18    zerompk::FromMessagePack,
19)]
20pub struct RequestId(u64);
21
22impl RequestId {
23    pub const fn new(id: u64) -> Self {
24        Self(id)
25    }
26
27    pub const fn as_u64(self) -> u64 {
28        self.0
29    }
30}
31
32impl fmt::Display for RequestId {
33    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34        write!(f, "req:{}", self.0)
35    }
36}