Skip to content

Commit 4014337

Browse files
committed
feat: add support for fields
1 parent 6934ebe commit 4014337

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use wasm_bindgen::prelude::*;
2+
3+
#[wasm_bindgen]
4+
pub struct FieldValue {
5+
pub(crate) name: String,
6+
pub(crate) value: String,
7+
}
8+
9+
#[wasm_bindgen]
10+
impl FieldValue {
11+
#[wasm_bindgen(constructor)]
12+
pub fn new(name: String, value: String) -> Self {
13+
Self { name, value }
14+
}
15+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
mod event;
2+
mod field;
23
mod level;
34
mod span;
45

56
pub use event::*;
7+
pub use field::*;
68
pub use level::*;
79
pub use span::*;

crates/bitwarden-logging/src/wasm/span.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use wasm_bindgen::prelude::*;
33

44
use crate::{
55
dynamic_tracing::span_factory::SpanFactory,
6-
wasm::{EventDefinition, level::TracingLevel},
6+
wasm::{EventDefinition, FieldValue, level::TracingLevel},
77
};
88

99
#[wasm_bindgen]
@@ -22,8 +22,11 @@ impl SpanDefinition {
2222
}
2323

2424
// TODO: Add fields
25-
pub fn enter(&self) -> Span {
25+
pub fn enter(&self, fields: Vec<FieldValue>) -> Span {
2626
let span = self.factory.create().build();
27+
for field in fields {
28+
span.record(field.name.as_str(), &field.value);
29+
}
2730
Span::new(span)
2831
}
2932
}
@@ -43,8 +46,16 @@ impl Span {
4346

4447
#[wasm_bindgen]
4548
impl Span {
46-
pub fn record(&self, event: &EventDefinition, message: String) {
47-
event.record(self.span.id(), message);
49+
pub fn record(&self, event: &EventDefinition, message: Option<String>) {
50+
event.record(
51+
self.span.id(),
52+
message.unwrap_or_else(|| {
53+
self.span
54+
.metadata()
55+
.map(|m| m.name().to_owned())
56+
.unwrap_or_default()
57+
}),
58+
);
4859
}
4960

5061
// Does not work yet due to wasm-bindgen-futures issues

0 commit comments

Comments
 (0)