gitql_parser/
name_generator.rs1static COLUMN_NAME_PREFIX: &str = "column_";
2static HIDDEN_NAME_PREFIX: &str = "_@temp_";
3
4#[derive(Default)]
6pub struct NameGenerator {
7 column_name_number: usize,
8 temp_name_number: usize,
9}
10
11impl NameGenerator {
12 pub fn generate_column_name(&mut self) -> String {
14 let name = format!("{}{}", COLUMN_NAME_PREFIX, self.column_name_number);
15 self.column_name_number += 1;
16 name
17 }
18
19 pub fn generate_temp_name(&mut self) -> String {
20 let name = format!("{}{}", HIDDEN_NAME_PREFIX, self.temp_name_number);
21 self.temp_name_number += 1;
22 name
23 }
24
25 pub fn reset_numbers(&mut self) {
27 self.column_name_number = 0;
28 self.temp_name_number = 0;
29 }
30}