1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! `DynamoDB` integration for Rusty Gasket.
//!
//! Provides a lifecycle plugin and axum extractor for `DynamoDB` access.
//! This is intentionally separate from `rusty-gasket-db` (SQL) because
//! `DynamoDB`'s key-value/document model is fundamentally different from
//! relational databases — forcing them behind a shared abstraction would
//! produce a lowest-common-denominator API worse than using either directly.
//!
//! # Examples
//!
//! ```ignore
//! use rusty_gasket::dynamodb::{DynamoPlugin, DynamoClient};
//!
//! // Register the plugin
//! let app = GasketApp::builder()
//! .plugin(DynamoPlugin::default())
//! .build().await?;
//!
//! // Use in handlers
//! async fn list_items(dynamo: DynamoClient) -> impl IntoResponse {
//! let result = dynamo.scan().table_name("items").send().await?;
//! // ...
//! }
//! ```
pub use DynamoConfig;
pub use DynamoClient;
pub use DynamoPlugin;
pub use BoxError;
/// Re-export the SDK client type for consumers who need direct access.
/// Pinned to the AWS SDK major version this crate was compiled against —
/// bumping `aws-sdk-dynamodb` is a semver-major change for this crate.
pub use Client as AwsDynamoClient;
/// Re-exports of the most commonly used `DynamoDB` types.
///
/// `use rusty_gasket::dynamodb::prelude::*` to get config, extractor,
/// and plugin in one import.