1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use rusoto_dynamodb::GetItemInput; use crate::{key, put::Put, query::Query}; /// Extension trait providing high level implementations of dynamodb requests pub trait DynamoDb: rusoto_dynamodb::DynamoDb + Clone { /// Perform a get item request fn get<T: key::Builder<Self, GetItemInput>>(&self) -> T::Builder { T::key(self.clone()) } /// Perform a query request fn query<T: Query<Self>>(&self) -> T::Builder { T::query(self.clone()) } /// Perform a put item request fn put<T: Put<Self>>(&self, t: T) -> T::Builder { t.put(self.clone()) } } impl<D: rusoto_dynamodb::DynamoDb + Clone> DynamoDb for D {}