wasmer_wit_bindgen_gen_core/
ns.rs1use std::collections::HashSet;
2
3#[derive(Default)]
4pub struct Ns {
5 defined: HashSet<String>,
6 tmp: usize,
7}
8
9impl Ns {
10 pub fn insert(&mut self, name: &str) -> Result<(), String> {
11 if self.defined.insert(name.to_string()) {
12 Ok(())
13 } else {
14 Err(format!("name `{}` already defined", name))
15 }
16 }
17
18 pub fn tmp(&mut self, name: &str) -> String {
19 let mut ret = name.to_string();
20 while self.defined.contains(&ret) {
21 ret = format!("{}{}", name, self.tmp);
22 self.tmp += 1;
23 }
24 self.defined.insert(ret.clone());
25 return ret;
26 }
27}