forked from open-telemetry/opentelemetry-rust
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlinks.rs
37 lines (30 loc) · 811 Bytes
/
links.rs
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
//! # Span Links
use std::ops::Deref;
use opentelemetry::trace::Link;
/// Stores span links along with dropped count.
#[derive(Clone, Debug, Default, PartialEq)]
#[non_exhaustive]
pub struct SpanLinks {
/// The links stored as a vector. Could be empty if there are no links.
pub links: Vec<Link>,
/// The number of links dropped from the span.
pub dropped_count: u32,
}
impl Deref for SpanLinks {
type Target = [Link];
fn deref(&self) -> &Self::Target {
&self.links
}
}
impl IntoIterator for SpanLinks {
type Item = Link;
type IntoIter = std::vec::IntoIter<Self::Item>;
fn into_iter(self) -> Self::IntoIter {
self.links.into_iter()
}
}
impl SpanLinks {
pub(crate) fn add_link(&mut self, link: Link) {
self.links.push(link);
}
}