Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deserialization refactor: introduce new deserialization traits #970

Merged
merged 41 commits into from
Jun 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
73d3d6e
types/deser: introduce TypeCheckError
wprzytula May 8, 2024
67dbe83
types/deser: introduce FrameSlice
wprzytula Mar 22, 2024
88e9e06
types/deser: introduce DeserializationError
wprzytula May 8, 2024
074d531
deser/value: error facilities
wprzytula May 8, 2024
bea0f8e
deser/row: error facilities
wprzytula May 8, 2024
7041588
deser/row: introduce ColumnIterator
wprzytula May 10, 2024
fe70485
scylla-cql/types: introduce new deserialization traits
wprzytula May 10, 2024
a2a83db
deser/value: set up test machinery
wprzytula Mar 21, 2024
ec8378b
value: impl DeserializeValue for CqlValue
wprzytula May 10, 2024
1d005f1
value: impl DeserializeValue for Option (null values)
wprzytula May 10, 2024
0e1f916
value: impl DeserializeValue for MaybeEmpty
wprzytula Mar 21, 2024
b9465a5
value: impl DeserializeValue for fixed numeric types
wprzytula Mar 21, 2024
3cd5b69
value: impl DeserializeValue for variable length numeric types
wprzytula Mar 21, 2024
0abe185
value: impl DeserializeValue for Blob
wprzytula Mar 21, 2024
b759ad9
value: impl DeserializeValue for string
wprzytula Mar 21, 2024
f1d7097
value: impl DeserializeValue for Counter
wprzytula Mar 21, 2024
d76cd29
value: impl DeserializeValue for duration types
wprzytula Mar 23, 2024
f1ff504
value: impl DeserializeValue for date types
wprzytula Mar 21, 2024
f49adc3
value: impl DeserializeValue for time types
wprzytula Mar 23, 2024
cf96543
value: impl DeserializeValue for timestamp types
wprzytula Mar 23, 2024
9b15e23
value: impl DeserializeValue for inet
wprzytula Mar 21, 2024
6738ac9
value: impl DeserializeValue for Uuid and Timeuuid
wprzytula May 8, 2024
4f83643
value: impl DeserializeValue for Secrecy
wprzytula Mar 21, 2024
bd6196c
value: Option/null tests
wprzytula May 10, 2024
ebbac62
value: test null and empty
wprzytula May 8, 2024
e13bfa9
value: impl DeserializeValue for List and Set
wprzytula Mar 21, 2024
92a4324
value: impl DeserializeValue for Map
wprzytula Mar 21, 2024
2bf4ca0
value: impl DeserializeValue for tuples
wprzytula May 8, 2024
b02f021
value: impl DeserializeValue for UDTs
wprzytula Mar 21, 2024
82b5d96
deser/row: test deser as ColumnIterator
wprzytula Mar 24, 2024
8e0f29a
deser/row: impl DeserializeRow for tuples
wprzytula Mar 22, 2024
c1f81e4
deser/row: impl DeserializeRow for Row
wprzytula Mar 19, 2024
da357cf
deser/result: introduce RowIterator
wprzytula Mar 22, 2024
c458b6a
deser/result: introduce TypedRowIterator
wprzytula Mar 22, 2024
dd5e71e
deser/value: errors tests
wprzytula May 8, 2024
58f523f
deser/row: errors tests
wprzytula May 10, 2024
802e683
result/deser_cql_value: use DeserializeValue impls
wprzytula May 28, 2024
ff37535
deser_rows: use DeserializeRow impl for Row
wprzytula May 28, 2024
9b8f4f3
value: remove compatibility tests
wprzytula Jun 4, 2024
9a3e6e6
value: add ser/de identity tests
wprzytula Jun 4, 2024
30d5149
scylla lib: constrain pub deserialize reexports
wprzytula Jun 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions scylla-cql/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ assert_matches = "1.5.0"
criterion = "0.4" # Note: v0.5 needs at least rust 1.70.0
# Use large-dates feature to test potential edge cases
time = { version = "0.3.21", features = ["large-dates"] }
uuid = { version = "1.0", features = ["v4"] }

[[bench]]
name = "benchmark"
Expand Down
3 changes: 3 additions & 0 deletions scylla-cql/src/frame/frame_errors.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use super::TryFromPrimitiveError;
use crate::cql_to_rust::CqlTypeError;
use crate::frame::value::SerializeValuesError;
use crate::types::deserialize::DeserializationError;
use crate::types::serialize::SerializationError;
use thiserror::Error;

Expand Down Expand Up @@ -39,6 +40,8 @@ pub enum ParseError {
#[error("Could not deserialize frame: {0}")]
BadIncomingData(String),
#[error(transparent)]
DeserializationError(#[from] DeserializationError),
#[error(transparent)]
IoError(#[from] std::io::Error),
#[error("type not yet implemented, id: {0}")]
TypeNotImplemented(u16),
Expand Down
Loading
Loading