serde_dynamo 4.2.14

serde serializer/deserializer for DynamoDB items that supports aws-sdk-dynamodb, aws_lambda_events, and rusoto_dynamodb
Documentation
[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.


## You may be looking for

* [serde_dynamo on crates.io]https://crates.io/crates/serde_dynamo
* [serde_dynamo on docs.rs]https://docs.rs/serde_dynamo
* [serde_dynamo on GitHub]https://github.com/zenlist/serde_dynamo


## Features

Support for [aws-sdk-dynamodb], [aws_lambda_events], and [rusoto_dynamodb] is
provided via features. See [the docs](https://docs.rs/serde_dynamo) for more
details.


## Examples

See [the docs](https://docs.rs/serde_dynamo) for more examples.


### Parsing items as strongly-typed data structures.


Items received from a [aws-sdk-dynamodb] call can be run through `from_items`.

```rust
#[derive(Serialize, Deserialize)]
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<User> = from_items(items)?;
    println!("Got {} users", users.len());
}
```

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);
}
```


### Creating items by serializing data structures

Writing an entire data structure to DynamoDB typically involves using `to_item` to serialize
it.

```rust
#[derive(Serialize, Deserialize)]
pub struct User {
    id: String,
    name: String,
    age: u8,
};

// Create a user
let user = User {
    id: "fSsgVtal8TpP".to_string(),
    name: "Arthur Dent".to_string(),
    age: 42,
};

// Turn it into an item that aws-sdk-dynamodb understands
let item = to_item(user)?;

// And write it!
client.put_item().table_name("users").set_item(Some(item)).send().await?;
```

[DynamoDB]: https://aws.amazon.com/dynamodb/
[serde]: https://serde.rs
[aws-sdk-dynamodb]: https://docs.rs/aws-sdk-dynamodb
[rusoto_dynamodb]: https://docs.rs/rusoto_dynamodb
[aws_lambda_events]: https://docs.rs/aws_lambda_events