Value
-> AttributeValue
```rust use awssdkdynamodb::types::AttributeValue; use serdejson::{Value, json}; use dynamodbmarshall::dynamodb;
fn main() { let input: Value = json!({ "hello": "world", "n": 42, "some": { "deep": { "value": 42 }, }, });
// transform `Value` into a DynamoDB `AttributeValue`
let value: AttributeValue = dynamodb::marshall(&input);
// M({"hello": S("world"), "some": M({"deep": M({"value": N("42")})}), "n": N("42")})
// ... upload value into dynamodb / do stuff
// transform DynamoDB `AttributeValue` into a `Value`
let original: Value = dynamodb::unmarshall(&value);
// Object {"hello": String("world"), "n": Number(42), "some": Object {"deep": Object {"value": Number(42)}}}
// Compare unmarshalled and input
assert_eq!(
input,
original
);
} ```
struct
that derive from Serialize, Deserialize
```rust use std::collections::HashMap; use serde::{Deserialize, Serialize}; use awssdkdynamodb::types::AttributeValue; use dynamodb_marshall::dynamodb;
struct Example {
hello: String,
world: bool,
something: HashMap
fn main() { let example = Example::default(); // V may fail let value: AttributeValue = dynamodb::marshall_t(&example).unwrap();
// Turn back to the struct V may fail
let same_example: Example = dynamodb::unmarshall_t::<Example>(&value).unwrap();
assert_eq!(
example,
same_example,
);
} ```