Skip to content

Commit aeee3b6

Browse files
authored
feat: Add default Value type for EventBridgeEvent detail (#843)
1 parent 5b399cf commit aeee3b6

File tree

1 file changed

+9
-4
lines changed
  • lambda-events/src/event/eventbridge

1 file changed

+9
-4
lines changed

lambda-events/src/event/eventbridge/mod.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
use chrono::{DateTime, Utc};
22
use serde::de::DeserializeOwned;
33
use serde::{Deserialize, Serialize};
4+
use serde_json::Value;
45

56
/// Parse EventBridge events.
67
/// Deserialize the event detail into a structure that's `DeserializeOwned`.
78
///
89
/// See https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html for structure details.
910
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
10-
#[serde(bound(deserialize = "T: DeserializeOwned"))]
11+
#[serde(bound(deserialize = "T1: DeserializeOwned"))]
1112
#[serde(rename_all = "kebab-case")]
12-
pub struct EventBridgeEvent<T: Serialize> {
13+
pub struct EventBridgeEvent<T1 = Value>
14+
where
15+
T1: Serialize,
16+
T1: DeserializeOwned,
17+
{
1318
#[serde(default)]
1419
pub version: Option<String>,
1520
#[serde(default)]
@@ -24,8 +29,8 @@ pub struct EventBridgeEvent<T: Serialize> {
2429
pub region: Option<String>,
2530
#[serde(default)]
2631
pub resources: Option<Vec<String>>,
27-
#[serde(bound(deserialize = "T: DeserializeOwned"))]
28-
pub detail: T,
32+
#[serde(bound = "")]
33+
pub detail: T1,
2934
}
3035

3136
#[cfg(test)]

0 commit comments

Comments
 (0)