[DynamoDB] is an AWS database that stores key/value and document data.
serde_dynamo provides a way to serialize and deserialize between data stored in these items and strongly-typed Rust data structures.
See the docs for more examples.
Support for [aws-sdk-dynamodb], [aws-lambda-events], and [rusoto_dynamodb] is provided via features. See the docs for more details.
Items received from a [aws-sdk-dynamodb] call can be run through from_items
.
```rust
pub struct User { id: String, name: String, age: u8, };
// Get documents from DynamoDB let result = client.scan().table_name("user").send().await?;
// And deserialize them as strongly-typed data structures
if let Some(items) = result.items {
let users: Vec
Alternatively, to deserialize one item at a time, from_item
can be used.
rust
for item in result.items.unwrap() {
let user: User = from_item(item)?;
println!("{} is {}", user.name, user.age);
}
Writing an entire data structure to DynamoDB typically involves using to_item
to serialize
it.
```rust
pub struct User { id: String, name: String, age: u8, };
// Create a user let user = User { id: "fSsgVtal8TpP".tostring(), name: "Arthur Dent".tostring(), age: 42, };
// Turn it into an item that aws-sdk-dynamodb understands let item = to_item(user)?;
// And write it! client.putitem().tablename("users").set_item(Some(item)).send().await?; ```