luaur_analysis/methods/
stringifier_state_get_name_to_string.rs1use crate::functions::generate_name::generate_name;
5use crate::records::stringifier_state::StringifierState;
6use crate::type_aliases::type_id::TypeId;
7use alloc::string::String;
8
9impl StringifierState {
10 pub fn get_name_type_id(&mut self, ty: TypeId) -> String {
12 unsafe {
13 let opts = &mut *self.opts;
14 let s = opts.name_map.types.size();
15 {
17 let n = opts.name_map.types.get_or_insert(ty);
18 if !n.is_empty() {
19 return n.clone();
20 }
21 }
22
23 for count in 0..256usize {
24 let candidate = generate_name(self.used_names.size() + count);
25 if !self.used_names.contains(&candidate) {
26 self.used_names.insert(candidate.clone());
27 *opts.name_map.types.get_or_insert(ty) = candidate.clone();
28 return candidate;
29 }
30 }
31
32 generate_name(s)
33 }
34 }
35}