Skip to content

Commit da38be6

Browse files
committed
Refactor lambda_service macro
1 parent 5369993 commit da38be6

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

src/middleware/lambda/context.rs

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ impl<T: Into<StringValue>> From<Option<T>> for OptionalValue {
4040
}
4141

4242
macro_rules! lambda_service {
43-
($trigger: ident, $kind: ident, $service:ident {
44-
$($prop:ident: $type:ty,)*
45-
$({ $key:path } = $value:literal,)*
46-
}) => {
43+
($trigger: ident, $kind: ident, $service:ident { $($prop:ident: $type:ty,)* }$(, $($field:tt)*)?) => {
4744
#[allow(non_snake_case)]
4845
pub struct $service {
4946
$($prop: $type,)*
@@ -76,7 +73,7 @@ macro_rules! lambda_service {
7673
{ semconv::FAAS_INVOCATION_ID } = req.context.request_id,
7774
{ semconv::FAAS_COLDSTART } = coldstart,
7875
$({ semconv::$prop } = self.$prop.as_str(),)*
79-
$({ $key } = $value,)*
76+
$($($field)*)?
8077
)
8178
}
8279
}
@@ -85,19 +82,31 @@ macro_rules! lambda_service {
8582

8683
lambda_service!(other, Server, GenericLambdaService {});
8784
lambda_service!(http, Server, HttpLambdaService {});
88-
lambda_service!(pubsub, Consumer, PubSubLambdaService {
89-
MESSAGING_SYSTEM: Value,
90-
MESSAGING_DESTINATION_NAME: OptionalValue,
85+
lambda_service!(
86+
pubsub,
87+
Consumer,
88+
PubSubLambdaService {
89+
MESSAGING_SYSTEM: Value,
90+
MESSAGING_DESTINATION_NAME: OptionalValue,
91+
},
9192
{ semconv::MESSAGING_OPERATION } = "process",
92-
});
93-
lambda_service!(datasource, Consumer, DatasourceLambdaService {
94-
FAAS_DOCUMENT_COLLECTION: Value,
95-
FAAS_DOCUMENT_OPERATION: Value,
96-
FAAS_DOCUMENT_NAME: OptionalValue,
97-
});
98-
lambda_service!(timer, Consumer, TimerLambdaService {
99-
FAAS_CRON: OptionalValue,
100-
});
93+
);
94+
lambda_service!(
95+
datasource,
96+
Consumer,
97+
DatasourceLambdaService {
98+
FAAS_DOCUMENT_COLLECTION: Value,
99+
FAAS_DOCUMENT_OPERATION: Value,
100+
FAAS_DOCUMENT_NAME: OptionalValue,
101+
},
102+
);
103+
lambda_service!(
104+
timer,
105+
Consumer,
106+
TimerLambdaService {
107+
FAAS_CRON: OptionalValue,
108+
},
109+
);
101110

102111
impl OtelLambdaLayer<GenericLambdaService> {
103112
#[inline]

0 commit comments

Comments
 (0)