wasmer_wit_bindgen_gen_core/
ns.rs

1use 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}