Skip to content

Commit 34aa552

Browse files
committed
Add src/middleware/lambda/value.rs
1 parent 12df0a5 commit 34aa552

File tree

3 files changed

+29
-30
lines changed

3 files changed

+29
-30
lines changed

src/middleware/lambda/context.rs

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,19 @@
11
use crate::semconv;
22
use lambda_runtime::LambdaInvocation;
3-
use opentelemetry::{trace::SpanKind, StringValue};
3+
use opentelemetry::trace::SpanKind;
44
use opentelemetry_sdk::trace::TracerProvider;
55
use tracing::Span;
66
use tracing_opentelemetry_instrumentation_sdk::TRACING_TARGET;
77

8-
use super::OtelLambdaLayer;
8+
use super::{
9+
value::{OptionalValue, Value},
10+
OtelLambdaLayer,
11+
};
912

1013
pub trait LambdaServiceContext {
1114
fn create_span(&self, req: &LambdaInvocation, coldstart: bool) -> Span;
1215
}
1316

14-
pub struct Value(StringValue);
15-
16-
impl Value {
17-
pub fn as_str(&self) -> &str {
18-
self.0.as_str()
19-
}
20-
}
21-
22-
impl<T: Into<StringValue>> From<T> for Value {
23-
fn from(inner: T) -> Self {
24-
Self(inner.into())
25-
}
26-
}
27-
28-
pub struct OptionalValue(Option<StringValue>);
29-
30-
impl OptionalValue {
31-
pub fn as_str(&self) -> Option<&str> {
32-
self.0.as_ref().map(|value| value.as_str())
33-
}
34-
}
35-
36-
impl<T: Into<StringValue>> From<Option<T>> for OptionalValue {
37-
fn from(inner: Option<T>) -> Self {
38-
Self(inner.map(|value| value.into()))
39-
}
40-
}
41-
4217
macro_rules! lambda_service {
4318
($trigger: ident, $kind: ident, $service:ident { $($prop:ident: $type:ty,)* }$(, $($field:tt)*)?) => {
4419
#[allow(non_snake_case)]

src/middleware/lambda/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
pub mod context;
22
pub mod layer;
3+
pub mod value;
34

45
pub use layer::OtelLambdaLayer;

src/middleware/lambda/value.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use opentelemetry::StringValue;
2+
3+
pub struct Value(StringValue);
4+
5+
impl Value {
6+
pub fn as_str(&self) -> &str {
7+
self.0.as_str()
8+
}
9+
}
10+
11+
impl<T: Into<StringValue>> From<T> for Value {
12+
fn from(inner: T) -> Self {
13+
Self(inner.into())
14+
}
15+
}
16+
17+
pub struct OptionalValue(Option<StringValue>);
18+
19+
impl OptionalValue {
20+
pub fn as_str(&self) -> Option<&str> {
21+
self.0.as_ref().map(|value| value.as_str())
22+
}
23+
}

0 commit comments

Comments
 (0)