diff --git a/src/code.rs b/src/code.rs index 280bb35c..d6dc65f6 100644 --- a/src/code.rs +++ b/src/code.rs @@ -569,7 +569,7 @@ fn build_table_fns( // "Option::None" will never match anything, and "is_null" is required to be used, see https://docs.diesel.rs/master/diesel/expression_methods/trait.ExpressionMethods.html#method.eq format!( r##" - if let Some(filter_{column_name}) = filter.{column_name}.clone() {{ + if let Some(filter_{column_name}) = filter.{column_name} {{ query = if filter_{column_name}.is_some() {{ query.filter({schema_path}{table_name}::{column_name}.eq(filter_{column_name})) }} else {{ @@ -580,7 +580,7 @@ fn build_table_fns( } else { format!( r##" - if let Some(filter_{column_name}) = filter.{column_name}.clone() {{ + if let Some(filter_{column_name}) = filter.{column_name} {{ query = query.filter({schema_path}{table_name}::{column_name}.eq(filter_{column_name})); }}"## ) diff --git a/test/advanced_queries/models/todos/generated.rs b/test/advanced_queries/models/todos/generated.rs index a445d212..cd2c9c80 100644 --- a/test/advanced_queries/models/todos/generated.rs +++ b/test/advanced_queries/models/todos/generated.rs @@ -131,28 +131,28 @@ impl Todos { ) -> crate::schema::todos::BoxedQuery<'a, diesel::pg::Pg> { let mut query = crate::schema::todos::table.into_boxed(); - if let Some(filter_id) = filter.id.clone() { + if let Some(filter_id) = filter.id { query = query.filter(crate::schema::todos::id.eq(filter_id)); } - if let Some(filter_text) = filter.text.clone() { + if let Some(filter_text) = filter.text { query = query.filter(crate::schema::todos::text.eq(filter_text)); } - if let Some(filter_completed) = filter.completed.clone() { + if let Some(filter_completed) = filter.completed { query = query.filter(crate::schema::todos::completed.eq(filter_completed)); } - if let Some(filter_type_) = filter.type_.clone() { + if let Some(filter_type_) = filter.type_ { query = query.filter(crate::schema::todos::type_.eq(filter_type_)); } - if let Some(filter_smallint) = filter.smallint.clone() { + if let Some(filter_smallint) = filter.smallint { query = query.filter(crate::schema::todos::smallint.eq(filter_smallint)); } - if let Some(filter_bigint) = filter.bigint.clone() { + if let Some(filter_bigint) = filter.bigint { query = query.filter(crate::schema::todos::bigint.eq(filter_bigint)); } - if let Some(filter_created_at) = filter.created_at.clone() { + if let Some(filter_created_at) = filter.created_at { query = query.filter(crate::schema::todos::created_at.eq(filter_created_at)); } - if let Some(filter_updated_at) = filter.updated_at.clone() { + if let Some(filter_updated_at) = filter.updated_at { query = query.filter(crate::schema::todos::updated_at.eq(filter_updated_at)); }