Skip to content

Commit a9e3ae1

Browse files
committed
Added result-displayer feature, moved displayer code to rows_displayer.rs, made code more idiomatic
1 parent 7687302 commit a9e3ae1

File tree

6 files changed

+1225
-1213
lines changed

6 files changed

+1225
-1213
lines changed

examples/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ scylla = { path = "../scylla", features = [
1818
"num-bigint-03",
1919
"num-bigint-04",
2020
"bigdecimal-04",
21+
"result-displayer",
2122
] }
2223
tokio = { version = "1.34", features = ["full"] }
2324
tracing = { version = "0.1.25", features = ["log"] }
@@ -131,4 +132,5 @@ path = "execution_profile.rs"
131132

132133
[[example]]
133134
name = "displayer"
134-
path = "displayer.rs"
135+
path = "displayer.rs"
136+
futures = ["result-displayer"]

examples/displayer.rs

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use anyhow::Result;
22
use scylla::{
33
client::{session::Session, session_builder::SessionBuilder},
4-
response::query_result::{ByteDisplaying, QueryRowsResult},
5-
DeserializeRow,
4+
response::{query_result::QueryRowsResult, rows_displayer::ByteDisplaying},
65
};
76
use std::env;
87

@@ -12,6 +11,7 @@ async fn main() -> Result<()> {
1211

1312
println!("Connecting to {} ...", uri);
1413

14+
// prepare the session
1515
let session: Session = SessionBuilder::new().known_node(uri).build().await?;
1616

1717
session.query_unpaged("CREATE KEYSPACE IF NOT EXISTS examples_ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}", &[]).await?;
@@ -50,15 +50,6 @@ async fn main() -> Result<()> {
5050
.execute_unpaged(&prepared, (44_i32, "I'm prepared 3!"))
5151
.await?;
5252

53-
// Or as custom structs that derive DeserializeRow
54-
#[allow(unused)]
55-
#[derive(Debug, DeserializeRow)]
56-
struct RowData {
57-
a: i32,
58-
b: Option<i32>,
59-
c: String,
60-
}
61-
6253
// example 1 - basic table
6354
let result: QueryRowsResult = session
6455
.query_unpaged("SELECT a, b, c FROM examples_ks.basic", &[])
@@ -87,12 +78,12 @@ async fn main() -> Result<()> {
8778
)
8879
.await?;
8980

90-
let result2: QueryRowsResult = session
81+
let result: QueryRowsResult = session
9182
.query_unpaged("SELECT * FROM examples_ks.basic4", &[])
9283
.await?
9384
.into_rows_result()?;
9485

95-
let mut displayer = result2.rows_displayer();
86+
let mut displayer = result.rows_displayer();
9687
displayer.set_blob_displaying(ByteDisplaying::Ascii);
9788
println!("\nblob, double, float, time, timestamp:");
9889
println!("{}", displayer);
@@ -152,12 +143,12 @@ async fn main() -> Result<()> {
152143
)
153144
.await?;
154145

155-
let result2: QueryRowsResult = session
146+
let result: QueryRowsResult = session
156147
.query_unpaged("SELECT * FROM examples_ks.basic6", &[])
157148
.await?
158149
.into_rows_result()?;
159150

160-
let mut displayer = result2.rows_displayer();
151+
let mut displayer = result.rows_displayer();
161152
println!("\ndate, duration, ip address, timeuuid:");
162153
println!("{}", displayer);
163154

@@ -183,12 +174,12 @@ async fn main() -> Result<()> {
183174
)
184175
.await?;
185176

186-
let result4: QueryRowsResult = session
177+
let result: QueryRowsResult = session
187178
.query_unpaged("SELECT * FROM examples_ks.upcoming_calendar", &[])
188179
.await?
189180
.into_rows_result()?;
190181

191-
let displayer = result4.rows_displayer();
182+
let displayer = result.rows_displayer();
192183
println!("\nList:");
193184
println!("{}", displayer);
194185

@@ -215,12 +206,12 @@ async fn main() -> Result<()> {
215206
)
216207
.await?;
217208

218-
let result4: QueryRowsResult = session
209+
let result: QueryRowsResult = session
219210
.query_unpaged("SELECT * FROM examples_ks.cyclist_teams", &[])
220211
.await?
221212
.into_rows_result()?;
222213

223-
let displayer = result4.rows_displayer();
214+
let displayer = result.rows_displayer();
224215
println!("\nMap:");
225216
println!("{}", displayer);
226217

@@ -242,12 +233,12 @@ async fn main() -> Result<()> {
242233
)
243234
.await?;
244235

245-
let result4: QueryRowsResult = session
236+
let result: QueryRowsResult = session
246237
.query_unpaged("SELECT * FROM examples_ks.cyclist_career_teams", &[])
247238
.await?
248239
.into_rows_result()?;
249240

250-
let displayer = result4.rows_displayer();
241+
let displayer = result.rows_displayer();
251242
println!("\nSet:");
252243
println!("{}", displayer);
253244

@@ -284,12 +275,12 @@ async fn main() -> Result<()> {
284275
)
285276
.await?;
286277

287-
let result4: QueryRowsResult = session
278+
let result: QueryRowsResult = session
288279
.query_unpaged("SELECT * FROM examples_ks.cyclist_stats", &[])
289280
.await?
290281
.into_rows_result()?;
291282

292-
let displayer = result4.rows_displayer();
283+
let displayer = result.rows_displayer();
293284
println!("\nUser defined type:");
294285
println!("{}", displayer);
295286

@@ -311,12 +302,12 @@ async fn main() -> Result<()> {
311302
)
312303
.await?;
313304

314-
let result4: QueryRowsResult = session
305+
let result: QueryRowsResult = session
315306
.query_unpaged("SELECT * FROM examples_ks.route", &[])
316307
.await?
317308
.into_rows_result()?;
318309

319-
let displayer = result4.rows_displayer();
310+
let displayer = result.rows_displayer();
320311
println!("\nTuples:");
321312
println!("{}", displayer);
322313

scylla/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ full-serialization = [
3939
"num-bigint-04",
4040
"bigdecimal-04",
4141
]
42+
result-displayer = ["dep:tabled", "dep:inline_colorization"]
4243

4344
[dependencies]
4445
scylla-macros = { version = "0.7.0", path = "../scylla-macros" }
@@ -77,8 +78,8 @@ base64 = { version = "0.22.1", optional = true }
7778
rand_pcg = "0.3.1"
7879
socket2 = { version = "0.5.3", features = ["all"] }
7980
lazy_static = "1"
80-
tabled = { version = "0.17.0", features = ["std", "ansi"] }
81-
inline_colorization = { version = "0.1.6" }
81+
tabled = { version = "0.17.0", features = ["std", "ansi"], optional = true }
82+
inline_colorization = { version = "0.1.6", optional = true }
8283
num-bigint-04 = { package = "num-bigint", version = "0.4" }
8384
bigdecimal-04 = { package = "bigdecimal", version = "0.4" }
8485

scylla/src/response/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
pub mod legacy_query_result;
1111
pub mod query_result;
1212
mod request_response;
13+
#[cfg(feature = "result-displayer")]
14+
pub mod rows_displayer;
1315

1416
pub(crate) use request_response::{
1517
NonErrorAuthResponse, NonErrorQueryResponse, NonErrorStartupResponse, QueryResponse,

0 commit comments

Comments
 (0)