// codesnip-guard: IdGenerator #[cfg_attr(any(),rustfmt::skip)]pub use self::id_generator::IdGenerator;#[cfg_attr(any(),rustfmt::skip)]mod id_generator{use std::ops::Range;#[derive(Debug,Default)]pub struct IdGenerator{next_id:usize}impl IdGenerator{pub fn new()->Self{Default::default()}pub fn create(&mut self)->usize{let id=self.next_id;self.next_id+=1;id}pub fn create_n(&mut self,n:usize)->Range{let start=self.next_id;self.next_id+=n;start..self.next_id}pub fn create_vec(&mut self,n:usize)->Vec{self.create_n(n).collect()}}}