Skip to content

Commit dce9e9f

Browse files
authored
Merge pull request #1093 from wprzytula/new-deserialization-api-upper-layer-heroes
Introduce new deserialization framework upper layer abstractions
2 parents 64b4afc + b0fabe5 commit dce9e9f

File tree

21 files changed

+3389
-1517
lines changed

21 files changed

+3389
-1517
lines changed

Cargo.lock.msrv

Lines changed: 65 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/cqlsh-rs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use rustyline::error::ReadlineError;
44
use rustyline::{CompletionType, Config, Context, Editor};
55
use rustyline_derive::{Helper, Highlighter, Hinter, Validator};
66
use scylla::transport::Compression;
7-
use scylla::{QueryResult, Session, SessionBuilder};
7+
use scylla::{LegacyQueryResult, Session, SessionBuilder};
88
use std::env;
99

1010
#[derive(Helper, Highlighter, Validator, Hinter)]
@@ -173,7 +173,7 @@ impl Completer for CqlHelper {
173173
}
174174
}
175175

176-
fn print_result(result: &QueryResult) {
176+
fn print_result(result: &LegacyQueryResult) {
177177
if result.rows.is_none() {
178178
println!("OK");
179179
return;

examples/tower.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct SessionService {
1212

1313
// A trivial service implementation for sending parameterless simple string requests to Scylla.
1414
impl Service<scylla::query::Query> for SessionService {
15-
type Response = scylla::QueryResult;
15+
type Response = scylla::LegacyQueryResult;
1616
type Error = scylla::transport::errors::QueryError;
1717
type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>>>>;
1818

examples/tracing.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ use scylla::statement::{
88
prepared_statement::PreparedStatement, query::Query, Consistency, SerialConsistency,
99
};
1010
use scylla::tracing::TracingInfo;
11-
use scylla::transport::iterator::RowIterator;
12-
use scylla::QueryResult;
11+
use scylla::transport::iterator::LegacyRowIterator;
12+
use scylla::LegacyQueryResult;
1313
use scylla::{Session, SessionBuilder};
1414
use std::env;
1515
use std::num::NonZeroU32;
@@ -42,7 +42,7 @@ async fn main() -> Result<()> {
4242
query.set_serial_consistency(Some(SerialConsistency::LocalSerial));
4343

4444
// QueryResult will contain a tracing_id which can be used to query tracing information
45-
let query_result: QueryResult = session.query_unpaged(query.clone(), &[]).await?;
45+
let query_result: LegacyQueryResult = session.query_unpaged(query.clone(), &[]).await?;
4646
let query_tracing_id: Uuid = query_result
4747
.tracing_id
4848
.ok_or_else(|| anyhow!("Tracing id is None!"))?;
@@ -79,14 +79,14 @@ async fn main() -> Result<()> {
7979
// To trace execution of a prepared statement tracing must be enabled for it
8080
prepared.set_tracing(true);
8181

82-
let execute_result: QueryResult = session.execute_unpaged(&prepared, &[]).await?;
82+
let execute_result: LegacyQueryResult = session.execute_unpaged(&prepared, &[]).await?;
8383
println!("Execute tracing id: {:?}", execute_result.tracing_id);
8484

8585
// PAGED QUERY_ITER EXECUTE_ITER
8686
// It's also possible to trace paged queries like query_iter or execute_iter
8787
// After iterating through all rows iterator.get_tracing_ids() will give tracing ids
8888
// for all page queries
89-
let mut row_iterator: RowIterator = session.query_iter(query, &[]).await?;
89+
let mut row_iterator: LegacyRowIterator = session.query_iter(query, &[]).await?;
9090

9191
while let Some(_row) = row_iterator.next().await {
9292
// Receive rows
@@ -105,7 +105,7 @@ async fn main() -> Result<()> {
105105
batch.set_tracing(true);
106106

107107
// Run the batch and print its tracing_id
108-
let batch_result: QueryResult = session.batch(&batch, ((),)).await?;
108+
let batch_result: LegacyQueryResult = session.batch(&batch, ((),)).await?;
109109
println!("Batch tracing id: {:?}\n", batch_result.tracing_id);
110110

111111
// CUSTOM

scylla-cql/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,13 @@ lz4_flex = { version = "0.11.1" }
2727
async-trait = "0.1.57"
2828
serde = { version = "1.0", features = ["derive"], optional = true }
2929
time-03 = { package = "time", version = "0.3", optional = true }
30+
yoke = { version = "0.7", features = ["derive"] }
31+
stable_deref_trait = "1.2"
3032

3133
[dev-dependencies]
3234
assert_matches = "1.5.0"
3335
criterion = "0.4" # Note: v0.5 needs at least rust 1.70.0
36+
lazy_static = "1" # We can migrate to std::sync::LazyLock once MSRV is bumped to 1.80.
3437
# Use large-dates feature to test potential edge cases
3538
time-03 = { package = "time", version = "0.3.21", features = ["large-dates"] }
3639
uuid = { version = "1.0", features = ["v4"] }

0 commit comments

Comments
 (0)