Skip to content

Commit

Permalink
docs: adding context to timeuuid using v1 feature
Browse files Browse the repository at this point in the history
  • Loading branch information
danielhe4rt committed Apr 23, 2024
1 parent 1fcadc9 commit a3a923a
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
7 changes: 7 additions & 0 deletions Cargo.lock.msrv

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 36 additions & 1 deletion docs/source/data-types/timeuuid.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Timeuuid

`Timeuuid` is represented as `value::CqlTimeuuid`.
`value::CqlTimeuuid` is a wrapper for `uuid::Uuid` with custom ordering logic
`value::CqlTimeuuid` is a wrapper for `uuid::Uuid` (using the `v1` feature) with custom ordering logic
which follows Scylla/Cassandra semantics.

```rust
Expand All @@ -19,6 +19,41 @@ session
.query("INSERT INTO keyspace.table (a) VALUES(?)", (to_insert,))
.await?;

// Read timeuuid from the table
if let Some(rows) = session.query("SELECT a FROM keyspace.table", &[]).await?.rows {
for row in rows.into_typed::<(CqlTimeuuid,)>() {
let (timeuuid_value,): (CqlTimeuuid,) = row?;
}
}
# Ok(())
# }
```

To use the Timeuuid on `uuid` crate, enable the feature `v1` in your crate using:

```shell
cargo add uuid -F v1
```

and now you're gonna be able to use the `uuid::v1` features:

```rust
# extern crate uuid;
# extern crate scylla;
# use scylla::Session;
# use std::error::Error;
# use std::str::FromStr;
use scylla::IntoTypedRows;
use scylla::frame::value::CqlTimeuuid;
use uuid::Uuid;
# async fn check_only_compiles(session: &Session) -> Result<(), Box<dyn Error>> {

// Insert some timeuuid into the table
let to_insert = CqlTimeuuid::from(Uuid::now_v1(&[1, 2, 3, 4, 5, 6]));
session
.query("INSERT INTO keyspace.table (a) VALUES(?)", (to_insert,))
.await?;

// Read timeuuid from the table
if let Some(rows) = session.query("SELECT a FROM keyspace.table", &[]).await?.rows {
for row in rows.into_typed::<(CqlTimeuuid,)>() {
Expand Down
2 changes: 1 addition & 1 deletion examples/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ tracing = "0.1.25"
tracing-subscriber = { version = "0.3.14", features = ["env-filter"] }
chrono = { version = "0.4", default-features = false }
time = { version = "0.3.22" }
uuid = "1.0"
uuid = { version = "1.0", features = ["v1"]}
tower = "0.4"
stats_alloc = "0.1"
clap = { version = "3.2.4", features = ["derive"] }
Expand Down

0 comments on commit a3a923a

Please sign in to comment.