Skip to content

Commit 73c68d8

Browse files
committed
chore: simplified the implementation and definition of FieldValueIdentifier
1 parent fc6af13 commit 73c68d8

9 files changed

Lines changed: 25 additions & 27 deletions

File tree

canyon_core/src/query/bounds.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,16 @@ pub trait FieldIdentifier: std::fmt::Display {
8585
/// Ex:
8686
/// `SELECT * FROM some_table WHERE id = 2`
8787
///
88-
/// That '2' it's extracted from some enum that implements [`FieldValueIdentifier<'a>`],
88+
/// That '2' it's extracted from some enum that implements [`FieldValueIdentifier`],
8989
/// where usually the variant w'd be something like:
9090
///
9191
/// ```
9292
/// pub enum Enum {
9393
/// IntVariant(i32)
9494
/// }
9595
/// ```
96-
pub trait FieldValueIdentifier<'a> {
97-
fn value(&'a self) -> (&'static str, &'a dyn QueryParameter<'_>);
96+
pub trait FieldValueIdentifier {
97+
fn value(&self) -> (&'static str, &dyn QueryParameter<'_>);
9898
}
9999

100100
/// Bounds to some type T in order to make it callable over some fn parameter T

canyon_core/src/query/querybuilder/contracts/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,15 @@ pub trait QueryBuilderOps<'a> {
126126
/// column name and the value for the filter
127127
/// * `op` - Any element that implements [`Operator`] for create the comparison
128128
/// or equality binary operator
129-
fn r#where<Z: FieldValueIdentifier<'a>>(self, column: &'a Z, op: impl Operator) -> Self;
129+
fn r#where<Z: FieldValueIdentifier>(self, column: &'a Z, op: impl Operator) -> Self;
130130

131131
/// Generates an `AND` SQL clause for constraint the query.
132132
///
133133
/// * `column` - A [`FieldValueIdentifier`] that will provide the target
134134
/// column name and the value for the filter
135135
/// * `op` - Any element that implements [`Operator`] for create the comparison
136136
/// or equality binary operator
137-
fn and<Z: FieldValueIdentifier<'a>>(self, column: &'a Z, op: impl Operator) -> Self;
137+
fn and<Z: FieldValueIdentifier>(self, column: &'a Z, op: impl Operator) -> Self;
138138

139139
/// Generates an `AND` SQL clause for constraint the query that's being constructed
140140
///
@@ -167,7 +167,7 @@ pub trait QueryBuilderOps<'a> {
167167
/// column name and the value for the filter
168168
/// * `op` - Any element that implements [`Operator`] for create the comparison
169169
/// or equality binary operator
170-
fn or<Z: FieldValueIdentifier<'a>>(self, column: &'a Z, op: impl Operator) -> Self;
170+
fn or<Z: FieldValueIdentifier>(self, column: &'a Z, op: impl Operator) -> Self;
171171

172172
/// Generates a `ORDER BY` SQL clause for constraint the query.
173173
///

canyon_core/src/query/querybuilder/impl/delete.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ impl<'a> QueryBuilderOps<'a> for DeleteQueryBuilder<'a> {
1818
}
1919

2020
#[inline]
21-
fn r#where<Z: FieldValueIdentifier<'a>>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
21+
fn r#where<Z: FieldValueIdentifier>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
2222
self._inner.r#where(r#where, op);
2323
self
2424
}
2525

2626
#[inline]
27-
fn and<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
27+
fn and<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
2828
self._inner.and(column, op);
2929
self
3030
}
@@ -50,7 +50,7 @@ impl<'a> QueryBuilderOps<'a> for DeleteQueryBuilder<'a> {
5050
}
5151

5252
#[inline]
53-
fn or<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
53+
fn or<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
5454
self._inner.or(column, op);
5555
self
5656
}

canyon_core/src/query/querybuilder/impl/select.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ impl<'a> QueryBuilderOps<'a> for SelectQueryBuilder<'a> {
7474
}
7575

7676
#[inline]
77-
fn r#where<Z: FieldValueIdentifier<'a>>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
77+
fn r#where<Z: FieldValueIdentifier>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
7878
self._inner.r#where(r#where, op);
7979
self
8080
}
8181

8282
#[inline]
83-
fn and<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
83+
fn and<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
8484
self._inner.and(column, op);
8585
self
8686
}
@@ -106,7 +106,7 @@ impl<'a> QueryBuilderOps<'a> for SelectQueryBuilder<'a> {
106106
}
107107

108108
#[inline]
109-
fn or<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
109+
fn or<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
110110
self._inner.or(column, op);
111111
self
112112
}

canyon_core/src/query/querybuilder/impl/update.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ impl<'a> QueryBuilderOps<'a> for UpdateQueryBuilder<'a> {
5858
}
5959

6060
#[inline]
61-
fn r#where<Z: FieldValueIdentifier<'a>>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
61+
fn r#where<Z: FieldValueIdentifier>(mut self, r#where: &'a Z, op: impl Operator) -> Self {
6262
self._inner.r#where(r#where, op);
6363
self
6464
}
6565

6666
#[inline]
67-
fn and<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
67+
fn and<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
6868
self._inner.and(column, op);
6969
self
7070
}
@@ -90,7 +90,7 @@ impl<'a> QueryBuilderOps<'a> for UpdateQueryBuilder<'a> {
9090
}
9191

9292
#[inline]
93-
fn or<Z: FieldValueIdentifier<'a>>(mut self, column: &'a Z, op: impl Operator) -> Self {
93+
fn or<Z: FieldValueIdentifier>(mut self, column: &'a Z, op: impl Operator) -> Self {
9494
self._inner.or(column, op);
9595
self
9696
}

canyon_core/src/query/querybuilder/types/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl<'a> QueryBuilder<'a> {
3838
Ok(Query::new(self.sql, self.params))
3939
}
4040

41-
pub fn r#where<Z: FieldValueIdentifier<'a>>(&mut self, r#where: &'a Z, op: impl Operator) {
41+
pub fn r#where<Z: FieldValueIdentifier>(&mut self, r#where: &'a Z, op: impl Operator) {
4242
let (column_name, value) = r#where.value();
4343

4444
let where_ = String::from(" WHERE ")
@@ -49,7 +49,7 @@ impl<'a> QueryBuilder<'a> {
4949
self.params.push(value);
5050
}
5151

52-
pub fn and<Z: FieldValueIdentifier<'a>>(&mut self, r#and: &'a Z, op: impl Operator) {
52+
pub fn and<Z: FieldValueIdentifier>(&mut self, r#and: &'a Z, op: impl Operator) {
5353
let (column_name, value) = r#and.value();
5454

5555
let and_ = String::from(" AND ")
@@ -110,7 +110,7 @@ impl<'a> QueryBuilder<'a> {
110110
self.sql.push(')');
111111
}
112112

113-
pub fn or<Z: FieldValueIdentifier<'a>>(&mut self, r#or: &'a Z, op: impl Operator) {
113+
pub fn or<Z: FieldValueIdentifier>(&mut self, r#or: &'a Z, op: impl Operator) {
114114
let (column_name, value) = r#or.value();
115115

116116
let or_ = String::from(" OR ")

canyon_entities/src/entity.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ impl CanyonEntity {
9292

9393
/// Generates an implementation of the match pattern to find whatever variant
9494
/// is being requested when the method `.value()` it's invoked over some
95-
/// instance that implements the `canyon_sql_root::crud::bounds::FieldValueIdentifier<'a>` trait
95+
/// instance that implements the `canyon_sql_root::crud::bounds::FieldValueIdentifier` trait
9696
pub fn create_match_arm_for_relate_fields_with_values(
9797
&self,
9898
enum_name: &Ident,

canyon_entities/src/manager_builder.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -197,16 +197,14 @@ pub fn generate_enum_with_fields_values(canyon_entity: &CanyonEntity) -> TokenSt
197197
/// opt(Option<String>)
198198
/// }
199199
/// ```
200-
#visibility enum #enum_name<'field_value> {
201-
#(#fields_names),*,
202-
None(std::marker::PhantomData<&'field_value ()>)
200+
#visibility enum #enum_name {
201+
#(#fields_names),*
203202
}
204203

205-
impl<'field_value> canyon_sql::query::bounds::FieldValueIdentifier<'field_value> for #enum_name<'field_value> {
206-
fn value(&'field_value self) -> (&'static str, &'field_value dyn canyon_sql::query::QueryParameter<'_>) {
204+
impl canyon_sql::query::bounds::FieldValueIdentifier for #enum_name {
205+
fn value(&self) -> (&'static str, &dyn canyon_sql::query::QueryParameter<'_>) {
207206
match self {
208-
#(#match_arms),*,
209-
_ => panic!()
207+
#(#match_arms),*
210208
}
211209
}
212210
}

tests/crud/querybuilder_operations.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ fn test_crud_delete_with_querybuilder() {
397397
// let q = create_querybuilder_lt(10);
398398
// assert_eq!(q.read_sql(), "DELETE FROM tournament WHERE id = 10");
399399
// }
400-
//
400+
//
401401
// #[cfg(feature = "postgres")]
402402
// fn create_querybuilder_lt<'a, 'b: 'a>(id: i32) -> DeleteQueryBuilder<'b> {
403403
// Tournament::delete_query()

0 commit comments

Comments
 (0)