Skip to content

Commit c3b1fc1

Browse files
committed
Move CqlValue and Row to scylla_cql::value module
Previously those types were located in scylla_cql::frame::response::result. This is because in old framework they were strongly coupled to the result frame: values were always deserialized into `Vec` of `Row`s, which in turn were `Vec`s of `CqlValue`. In the new framework this coupling is gone. New traits allow deserialization from raw bytes instead of `CqlValue`, which means that those types are no more important than any other, and can be moved to the module with other values. scylla_cql::values may be a bit of a weird place for a `Row` struct, but I don't see any better place.
1 parent 587ff9e commit c3b1fc1

File tree

25 files changed

+515
-514
lines changed

25 files changed

+515
-514
lines changed

docs/source/queries/values.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ or a custom struct which derives from `SerializeRow`.
1212
A few examples:
1313
```rust
1414
# extern crate scylla;
15-
# use scylla::{SerializeRow, frame::response::result::CqlValue};
15+
# use scylla::SerializeRow;
1616
# use scylla::client::session::Session;
17+
# use scylla::value::CqlValue;
1718
# use std::error::Error;
1819
# use std::collections::HashMap;
1920
# async fn check_only_compiles(session: &Session) -> Result<(), Box<dyn Error>> {

examples/basic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use futures::StreamExt as _;
33
use futures::TryStreamExt as _;
44
use scylla::client::session::Session;
55
use scylla::client::session_builder::SessionBuilder;
6-
use scylla::frame::response::result::Row;
6+
use scylla::value::Row;
77
use scylla::DeserializeRow;
88
use std::env;
99

examples/cql-time-types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use chrono::{DateTime, NaiveDate, NaiveTime, Utc};
66
use futures::{StreamExt as _, TryStreamExt as _};
77
use scylla::client::session::Session;
88
use scylla::client::session_builder::SessionBuilder;
9-
use scylla::frame::response::result::CqlValue;
9+
use scylla::value::CqlValue;
1010
use scylla::value::{CqlDate, CqlTime, CqlTimestamp};
1111
use std::env;
1212

examples/cqlsh-rs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ use rustyline::{CompletionType, Config, Context, Editor};
55
use rustyline_derive::{Helper, Highlighter, Hinter, Validator};
66
use scylla::client::session::Session;
77
use scylla::client::session_builder::SessionBuilder;
8-
use scylla::frame::response::result::Row;
98
use scylla::frame::Compression;
109
use scylla::response::query_result::IntoRowsResultError;
1110
use scylla::response::query_result::QueryResult;
11+
use scylla::value::Row;
1212
use std::env;
1313

1414
#[derive(Helper, Highlighter, Validator, Hinter)]

examples/get_by_name.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use anyhow::{anyhow, Result};
22
use scylla::client::session::Session;
33
use scylla::client::session_builder::SessionBuilder;
4-
use scylla::frame::response::result::Row;
4+
use scylla::value::Row;
55
use std::env;
66

77
#[tokio::main]

examples/query_history.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ use anyhow::Result;
44
use futures::StreamExt as _;
55
use scylla::client::session::Session;
66
use scylla::client::session_builder::SessionBuilder;
7-
use scylla::frame::response::result::Row;
87
use scylla::observability::history::{HistoryCollector, StructuredHistory};
98
use scylla::query::Query;
9+
use scylla::value::Row;
1010
use std::env;
1111
use std::sync::Arc;
1212

examples/tower.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use scylla::client::session::Session;
22
use scylla::client::session_builder::SessionBuilder;
3-
use scylla::frame::response::result::Row;
3+
use scylla::value::Row;
44
use std::env;
55
use std::future::Future;
66
use std::pin::Pin;
@@ -43,11 +43,9 @@ async fn main() -> anyhow::Result<()> {
4343
.await?
4444
.into_rows_result()?;
4545

46-
let print_text = |t: &Option<scylla::frame::response::result::CqlValue>| {
46+
let print_text = |t: &Option<scylla::value::CqlValue>| {
4747
t.as_ref()
48-
.unwrap_or(&scylla::frame::response::result::CqlValue::Text(
49-
"<null>".to_string(),
50-
))
48+
.unwrap_or(&scylla::value::CqlValue::Text("<null>".to_string()))
5149
.as_text()
5250
.unwrap_or(&"<null>".to_string())
5351
.clone()

scylla-cql/src/deserialize/row.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use thiserror::Error;
66

77
use super::value::DeserializeValue;
88
use super::{make_error_replace_rust_name, DeserializationError, FrameSlice, TypeCheckError};
9-
use crate::frame::response::result::{ColumnSpec, ColumnType, CqlValue, Row};
9+
use crate::frame::response::result::{ColumnSpec, ColumnType};
10+
use crate::value::{CqlValue, Row};
1011

1112
/// Represents a raw, unparsed column value.
1213
#[non_exhaustive]

scylla-cql/src/deserialize/value.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ use super::{make_error_replace_rust_name, DeserializationError, FrameSlice, Type
1919
use crate::frame::frame_errors::LowLevelDeserializationError;
2020
use crate::frame::response::result::CollectionType;
2121
use crate::frame::response::result::UserDefinedType;
22-
use crate::frame::response::result::{deser_cql_value, ColumnType, CqlValue, NativeType};
22+
use crate::frame::response::result::{ColumnType, NativeType};
2323
use crate::frame::types;
2424
use crate::value::CqlVarintBorrowed;
2525
use crate::value::{
26-
Counter, CqlDate, CqlDecimal, CqlDecimalBorrowed, CqlDuration, CqlTime, CqlTimestamp,
27-
CqlTimeuuid, CqlVarint,
26+
deser_cql_value, Counter, CqlDate, CqlDecimal, CqlDecimalBorrowed, CqlDuration, CqlTime,
27+
CqlTimestamp, CqlTimeuuid, CqlValue, CqlVarint,
2828
};
2929

3030
/// A type that can be deserialized from a column value inside a row that was

scylla-cql/src/deserialize/value_tests.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ use std::sync::Arc;
1313
use crate::deserialize::value::{TupleDeserializationErrorKind, TupleTypeCheckErrorKind};
1414
use crate::deserialize::{DeserializationError, FrameSlice, TypeCheckError};
1515
use crate::frame::response::result::NativeType::*;
16-
use crate::frame::response::result::{
17-
CollectionType, ColumnType, CqlValue, NativeType, UserDefinedType,
18-
};
16+
use crate::frame::response::result::{CollectionType, ColumnType, NativeType, UserDefinedType};
1917
use crate::serialize::value::SerializeValue;
2018
use crate::serialize::CellWriter;
2119
use crate::value::{
2220
Counter, CqlDate, CqlDecimal, CqlDecimalBorrowed, CqlDuration, CqlTime, CqlTimestamp,
23-
CqlTimeuuid, CqlVarint, CqlVarintBorrowed,
21+
CqlTimeuuid, CqlValue, CqlVarint, CqlVarintBorrowed,
2422
};
2523

2624
use super::{

0 commit comments

Comments
 (0)