sentry_core/
breadcrumbs.rs
1use crate::protocol::Breadcrumb;
2pub trait IntoBreadcrumbs {
8 type Output: Iterator<Item = Breadcrumb>;
10
11 fn into_breadcrumbs(self) -> Self::Output;
13}
14
15impl IntoBreadcrumbs for Breadcrumb {
16 type Output = std::iter::Once<Breadcrumb>;
17
18 fn into_breadcrumbs(self) -> Self::Output {
19 std::iter::once(self)
20 }
21}
22
23impl IntoBreadcrumbs for Vec<Breadcrumb> {
24 type Output = std::vec::IntoIter<Breadcrumb>;
25
26 fn into_breadcrumbs(self) -> Self::Output {
27 self.into_iter()
28 }
29}
30
31impl IntoBreadcrumbs for Option<Breadcrumb> {
32 type Output = std::option::IntoIter<Breadcrumb>;
33
34 fn into_breadcrumbs(self) -> Self::Output {
35 self.into_iter()
36 }
37}
38
39impl<F: FnOnce() -> I, I: IntoBreadcrumbs> IntoBreadcrumbs for F {
40 type Output = I::Output;
41
42 fn into_breadcrumbs(self) -> Self::Output {
43 self().into_breadcrumbs()
44 }
45}