sim_lib_openai_server/
ids.rs1use sim_kernel::{Error, Result};
2
3#[derive(Clone, Debug, PartialEq, Eq)]
8pub struct GatewayIdGenerator {
9 prefix: String,
10 next: u64,
11}
12
13impl GatewayIdGenerator {
14 pub fn deterministic(prefix: impl Into<String>, start: u64) -> Self {
17 Self {
18 prefix: prefix.into(),
19 next: start,
20 }
21 }
22
23 pub fn next_id(&mut self) -> Result<String> {
26 let value = self.next;
27 self.next = self
28 .next
29 .checked_add(1)
30 .ok_or_else(|| Error::Eval("gateway id counter overflow".to_owned()))?;
31 Ok(format!("{}_{value:06}", self.prefix))
32 }
33}