Skip to content

Commit 3567457

Browse files
authored
Remove <dyn Query> warnings (#97)
1 parent 14df339 commit 3567457

File tree

10 files changed

+39
-42
lines changed

10 files changed

+39
-42
lines changed

Diff for: .github/workflows/rust.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ jobs:
2727
- name: Check code formatting
2828
run: cargo fmt --all -- --check
2929
- name: Check Clippy lints (reqwest)
30-
run: cargo clippy --all-targets --no-default-features --features use-serde,derive,reqwest-client -- -D warnings
30+
run: cargo clippy --manifest-path influxdb/Cargo.toml --all-targets --no-default-features --features use-serde,derive,reqwest-client -- -D warnings
3131
- name: Check Clippy lints (surf)
32-
run: cargo clippy --all-targets --no-default-features --features use-serde,derive,hyper-client -- -D warnings
32+
run: cargo clippy --manifest-path influxdb/Cargo.toml --all-targets --no-default-features --features use-serde,derive,hyper-client -- -D warnings
3333

3434
compile:
3535
name: Compile (${{ matrix.rust_release }}/${{ matrix.os }})

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111

1212
- reqwest-based http client (enabled by default)
13+
- deprecate `<dyn Query>::raw_read_query` in favour of `ReadQuery::new`
1314

1415
## [0.4.0] - 2021-03-08
1516

Diff for: benches/client.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use chrono::{DateTime, Utc};
22
use influxdb::Error;
33
use influxdb::InfluxDbWriteable;
4-
use influxdb::{Client, Query};
4+
use influxdb::{Client, ReadQuery};
55
use std::sync::Arc;
66
use std::time::Instant;
77
use tokio::sync::mpsc::unbounded_channel;
@@ -67,7 +67,7 @@ async fn main() {
6767
async fn prepare_influxdb(client: &Client, db_name: &str) {
6868
let create_db_stmt = format!("CREATE DATABASE {}", db_name);
6969
client
70-
.query(&Query::raw_read_query(create_db_stmt))
70+
.query(&ReadQuery::new(create_db_stmt))
7171
.await
7272
.expect("failed to create database");
7373
}

Diff for: influxdb/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
109109
#![allow(clippy::needless_doctest_main)]
110110
#![allow(clippy::needless_lifetimes)] // False positive in client/mod.rs query fn
111+
#![forbid(bare_trait_objects)]
111112

112113
#[cfg(all(feature = "reqwest", feature = "surf"))]
113114
compile_error!("You need to choose between reqwest and surf; enabling both is not supported");

Diff for: influxdb/src/query/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ impl dyn Query {
135135
///
136136
/// Query::raw_read_query("SELECT * FROM weather"); // Is of type [`ReadQuery`](crate::ReadQuery)
137137
/// ```
138+
#[deprecated(since = "0.5.0", note = "Use ReadQuery::new instead")]
138139
pub fn raw_read_query<S>(read_query: S) -> ReadQuery
139140
where
140141
S: Into<String>,

Diff for: influxdb/src/query/read_query.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,18 @@ impl Query for ReadQuery {
4343

4444
#[cfg(test)]
4545
mod tests {
46-
use crate::query::{Query, QueryType};
46+
use crate::query::{Query, QueryType, ReadQuery};
4747

4848
#[test]
4949
fn test_read_builder_single_query() {
50-
let query = Query::raw_read_query("SELECT * FROM aachen").build();
50+
let query = ReadQuery::new("SELECT * FROM aachen").build();
5151

5252
assert_eq!(query.unwrap(), "SELECT * FROM aachen");
5353
}
5454

5555
#[test]
5656
fn test_read_builder_multi_query() {
57-
let query = Query::raw_read_query("SELECT * FROM aachen")
57+
let query = ReadQuery::new("SELECT * FROM aachen")
5858
.add_query("SELECT * FROM cologne")
5959
.build();
6060

@@ -63,7 +63,7 @@ mod tests {
6363

6464
#[test]
6565
fn test_correct_query_type() {
66-
let query = Query::raw_read_query("SELECT * FROM aachen");
66+
let query = ReadQuery::new("SELECT * FROM aachen");
6767

6868
assert_eq!(query.get_type(), QueryType::ReadQuery);
6969
}

Diff for: influxdb/src/query/write_query.rs

-1
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,6 @@ mod tests {
334334

335335
assert!(query.is_ok(), "Query was empty");
336336
let query_res = query.unwrap().get();
337-
#[allow(clippy::print_literal)]
338337
assert_eq!(
339338
query_res,
340339
r#"wea\,\ ther=,location=us-midwest,loc\,\ \="ation=us\,\ \"mid\=west temperature=82i,"temp\=era\,t\ ure"="too\"\\\\hot",float=82 11"#

Diff for: influxdb/tests/derive_integration_tests.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ mod utilities;
55
use influxdb::InfluxDbWriteable;
66

77
use chrono::{DateTime, Utc};
8-
use influxdb::{Query, Timestamp};
8+
use influxdb::{Query, ReadQuery, Timestamp};
99

1010
#[cfg(feature = "use-serde")]
1111
use serde::Deserialize;
@@ -101,16 +101,17 @@ async fn test_write_and_read_option() {
101101
.query(&weather_reading.into_query("weather_reading".to_string()))
102102
.await;
103103
assert_result_ok(&write_result);
104-
let query =
105-
Query::raw_read_query("SELECT time, pressure, wind_strength FROM weather_reading");
104+
let query = ReadQuery::new("SELECT time, pressure, wind_strength FROM weather_reading");
106105
let result = client.json_query(query).await.and_then(|mut db_result| {
107106
println!("{:?}", db_result);
108107
db_result.deserialize_next::<WeatherReadingWithoutIgnored>()
109108
});
110109
assert_result_ok(&result);
111110
let result = result.unwrap();
112-
assert_eq!(result.series[0].values[0].pressure, 100);
113-
assert_eq!(result.series[0].values[0].wind_strength, None);
111+
let value = &result.series[0].values[0];
112+
assert_eq!(value.time, Timestamp::Hours(11).into());
113+
assert_eq!(value.pressure, 100);
114+
assert_eq!(value.wind_strength, None);
114115
},
115116
|| async move {
116117
delete_db(TEST_NAME).await.expect("could not clean up db");

Diff for: influxdb/tests/integration_tests.rs

+19-21
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use utilities::{
77
};
88

99
use influxdb::InfluxDbWriteable;
10-
use influxdb::{Client, Error, Query, Timestamp};
10+
use influxdb::{Client, Error, ReadQuery, Timestamp};
1111

1212
/// INTEGRATION TEST
1313
///
@@ -52,7 +52,7 @@ async fn test_connection_error() {
5252
let test_name = "test_connection_error";
5353
let client =
5454
Client::new("http://127.0.0.1:10086", test_name).with_auth("nopriv_user", "password");
55-
let read_query = Query::raw_read_query("SELECT * FROM weather");
55+
let read_query = ReadQuery::new("SELECT * FROM weather");
5656
let read_result = client.query(&read_query).await;
5757
assert_result_err(&read_result);
5858
match read_result {
@@ -78,7 +78,7 @@ async fn test_authed_write_and_read() {
7878
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
7979
let query = format!("CREATE DATABASE {}", TEST_NAME);
8080
client
81-
.query(&Query::raw_read_query(query))
81+
.query(&ReadQuery::new(query))
8282
.await
8383
.expect("could not setup db");
8484

@@ -90,7 +90,7 @@ async fn test_authed_write_and_read() {
9090
let write_result = client.query(&write_query).await;
9191
assert_result_ok(&write_result);
9292

93-
let read_query = Query::raw_read_query("SELECT * FROM weather");
93+
let read_query = ReadQuery::new("SELECT * FROM weather");
9494
let read_result = client.query(&read_query).await;
9595
assert_result_ok(&read_result);
9696
assert!(
@@ -104,7 +104,7 @@ async fn test_authed_write_and_read() {
104104
let query = format!("DROP DATABASE {}", TEST_NAME);
105105

106106
client
107-
.query(&Query::raw_read_query(query))
107+
.query(&ReadQuery::new(query))
108108
.await
109109
.expect("could not clean up db");
110110
},
@@ -126,7 +126,7 @@ async fn test_wrong_authed_write_and_read() {
126126
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
127127
let query = format!("CREATE DATABASE {}", TEST_NAME);
128128
client
129-
.query(&Query::raw_read_query(query))
129+
.query(&ReadQuery::new(query))
130130
.await
131131
.expect("could not setup db");
132132

@@ -145,7 +145,7 @@ async fn test_wrong_authed_write_and_read() {
145145
),
146146
}
147147

148-
let read_query = Query::raw_read_query("SELECT * FROM weather");
148+
let read_query = ReadQuery::new("SELECT * FROM weather");
149149
let read_result = client.query(&read_query).await;
150150
assert_result_err(&read_result);
151151
match read_result {
@@ -158,7 +158,7 @@ async fn test_wrong_authed_write_and_read() {
158158

159159
let client = Client::new("http://127.0.0.1:9086", TEST_NAME)
160160
.with_auth("nopriv_user", "password");
161-
let read_query = Query::raw_read_query("SELECT * FROM weather");
161+
let read_query = ReadQuery::new("SELECT * FROM weather");
162162
let read_result = client.query(&read_query).await;
163163
assert_result_err(&read_result);
164164
match read_result {
@@ -174,7 +174,7 @@ async fn test_wrong_authed_write_and_read() {
174174
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
175175
let query = format!("DROP DATABASE {}", TEST_NAME);
176176
client
177-
.query(&Query::raw_read_query(query))
177+
.query(&ReadQuery::new(query))
178178
.await
179179
.expect("could not clean up db");
180180
},
@@ -196,7 +196,7 @@ async fn test_non_authed_write_and_read() {
196196
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
197197
let query = format!("CREATE DATABASE {}", TEST_NAME);
198198
client
199-
.query(&Query::raw_read_query(query))
199+
.query(&ReadQuery::new(query))
200200
.await
201201
.expect("could not setup db");
202202
let non_authed_client = Client::new("http://127.0.0.1:9086", TEST_NAME);
@@ -213,7 +213,7 @@ async fn test_non_authed_write_and_read() {
213213
),
214214
}
215215

216-
let read_query = Query::raw_read_query("SELECT * FROM weather");
216+
let read_query = ReadQuery::new("SELECT * FROM weather");
217217
let read_result = non_authed_client.query(&read_query).await;
218218
assert_result_err(&read_result);
219219
match read_result {
@@ -229,7 +229,7 @@ async fn test_non_authed_write_and_read() {
229229
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
230230
let query = format!("DROP DATABASE {}", TEST_NAME);
231231
client
232-
.query(&Query::raw_read_query(query))
232+
.query(&ReadQuery::new(query))
233233
.await
234234
.expect("could not clean up db");
235235
},
@@ -255,7 +255,7 @@ async fn test_write_and_read_field() {
255255
let write_result = client.query(&write_query).await;
256256
assert_result_ok(&write_result);
257257

258-
let read_query = Query::raw_read_query("SELECT * FROM weather");
258+
let read_query = ReadQuery::new("SELECT * FROM weather");
259259
let read_result = client.query(&read_query).await;
260260
assert_result_ok(&read_result);
261261
assert!(
@@ -304,8 +304,7 @@ async fn test_write_and_read_option() {
304304
temperature: i32,
305305
}
306306

307-
let query =
308-
Query::raw_read_query("SELECT time, temperature, wind_strength FROM weather");
307+
let query = ReadQuery::new("SELECT time, temperature, wind_strength FROM weather");
309308
let result = client
310309
.json_query(query)
311310
.await
@@ -361,7 +360,7 @@ async fn test_json_query() {
361360
temperature: i32,
362361
}
363362

364-
let query = Query::raw_read_query("SELECT * FROM weather");
363+
let query = ReadQuery::new("SELECT * FROM weather");
365364
let result = client
366365
.json_query(query)
367366
.await
@@ -419,7 +418,7 @@ async fn test_json_query_tagged() {
419418
temperature: i32,
420419
}
421420

422-
let query = Query::raw_read_query("SELECT * FROM weather GROUP BY location");
421+
let query = ReadQuery::new("SELECT * FROM weather GROUP BY location");
423422
let result = client.json_query(query).await.and_then(|mut db_result| {
424423
db_result.deserialize_next_tagged::<WeatherMeta, Weather>()
425424
});
@@ -487,7 +486,7 @@ async fn test_json_query_vec() {
487486
temperature: i32,
488487
}
489488

490-
let query = Query::raw_read_query("SELECT * FROM temperature_vec");
489+
let query = ReadQuery::new("SELECT * FROM temperature_vec");
491490
let result = client
492491
.json_query(query)
493492
.await
@@ -544,8 +543,7 @@ async fn test_serde_multi_query() {
544543

545544
let result = client
546545
.json_query(
547-
Query::raw_read_query("SELECT * FROM temperature")
548-
.add_query("SELECT * FROM humidity"),
546+
ReadQuery::new("SELECT * FROM temperature").add_query("SELECT * FROM humidity"),
549547
)
550548
.await
551549
.and_then(|mut db_result| {
@@ -588,7 +586,7 @@ async fn test_serde_multi_query() {
588586
async fn test_wrong_query_errors() {
589587
let client = create_client("test_name");
590588
let result = client
591-
.json_query(Query::raw_read_query("CREATE DATABASE this_should_fail"))
589+
.json_query(ReadQuery::new("CREATE DATABASE this_should_fail"))
592590
.await;
593591
assert!(
594592
result.is_err(),

Diff for: influxdb/tests/utilities.rs

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use futures::prelude::*;
2-
use influxdb::{Client, Error, Query};
2+
use influxdb::{Client, Error, ReadQuery};
33
use std::panic::{AssertUnwindSafe, UnwindSafe};
44

55
#[allow(dead_code)]
@@ -28,9 +28,7 @@ where
2828
{
2929
let test_name = name.into();
3030
let query = format!("CREATE DATABASE {}", test_name);
31-
create_client(test_name)
32-
.query(&Query::raw_read_query(query))
33-
.await
31+
create_client(test_name).query(&ReadQuery::new(query)).await
3432
}
3533

3634
#[cfg(not(tarpaulin_include))]
@@ -40,9 +38,7 @@ where
4038
{
4139
let test_name = name.into();
4240
let query = format!("DROP DATABASE {}", test_name);
43-
create_client(test_name)
44-
.query(&Query::raw_read_query(query))
45-
.await
41+
create_client(test_name).query(&ReadQuery::new(query)).await
4642
}
4743

4844
#[cfg(not(tarpaulin_include))]

0 commit comments

Comments
 (0)