diff --git a/src/analyzer/indexer.rs b/src/analyzer/indexer.rs index ac3e4fc..ed7ddd6 100644 --- a/src/analyzer/indexer.rs +++ b/src/analyzer/indexer.rs @@ -110,10 +110,10 @@ impl Indexer { schema, name, .. - } = r#enum.ident.clone(); + } = &r#enum.ident; let schema = schema - .clone() + .as_ref() .map(|s| s.to_string.clone()) .unwrap_or_else(|| DEFAULT_SCHEMA.into()); @@ -222,7 +222,7 @@ impl Indexer { enum_name: &String, values: &Vec, ) -> (bool, (bool, Vec)) { - let schema = schema.clone().unwrap_or_else(|| DEFAULT_SCHEMA.into()); + let schema = schema.clone().unwrap_or_else(|| DEFAULT_SCHEMA.to_string()); match self.schema_map.get(&schema) { Some(block) => { @@ -357,7 +357,7 @@ impl IndexedRef { tables .iter() .find(|table| { - table.ident.schema.clone().map(|s| s.to_string) == ref_ident.schema.clone().map(|s| s.to_string) + table.ident.schema.as_ref().map(|s| &s.to_string) == ref_ident.schema.as_ref().map(|s| &s.to_string) && table.ident.name.to_string == ref_ident.table.to_string }) .map(Ok) diff --git a/src/analyzer/mod.rs b/src/analyzer/mod.rs index a0514a8..6c33ac5 100644 --- a/src/analyzer/mod.rs +++ b/src/analyzer/mod.rs @@ -420,7 +420,7 @@ pub fn analyze(schema_block: &SchemaBlock) -> AnalyzerResult { .collect::>()?; // validate ref - for indexed_ref in indexed_refs.clone() { + for indexed_ref in &indexed_refs { indexed_ref.validate_ref_type(&tables, &indexer, input)?; let count = indexed_refs diff --git a/src/ast/table.rs b/src/ast/table.rs index 29f5283..dbac33d 100644 --- a/src/ast/table.rs +++ b/src/ast/table.rs @@ -184,7 +184,7 @@ pub struct ColumnSettings { /// A default value for the column. pub default: Option, /// A vector of inline references associated with the column. - pub refs: Vec, + pub refs: Vec, } /// A struct representing a table identifier.