dynomite-derive 0.5.0

Derives AWS DynamoDB dynomite types from native Rust struct types

Dynomite-derive provides procedural macros for deriving dynomite types for your structs

Examples

use dynomite::{Item, FromAttributes, Attributes};
use dynomite::dynamodb::AttributeValue;

// derive Item
#[derive(Item, PartialEq, Debug, Clone)]
struct Person {
#[hash] id: String
}

fn main() {
let person = Person { id: "123".into() };
// convert person to string keys and attribute values
let attributes: Attributes = person.clone().into();
// convert attributes into person type
assert_eq!(person, Person::from_attrs(attributes).unwrap());

// dynamodb types require only primary key attributes and may contain
// other fields. when looking up items only those key attributes are required
// dynomite derives a new {Name}Key struct for your which contains
// only those and also implements Item
let key = PersonKey { id: "123".into() };
let key_attributes: Attributes = key.clone().into();
// convert attributes into person type
assert_eq!(key, PersonKey::from_attrs(key_attributes).unwrap());
}