10 #include "opentelemetry/common/key_value_iterable_view.h"
11 #include "opentelemetry/nostd/function_ref.h"
12 #include "opentelemetry/nostd/span.h"
13 #include "opentelemetry/nostd/string_view.h"
14 #include "opentelemetry/nostd/utility.h"
15 #include "opentelemetry/trace/span_context.h"
16 #include "opentelemetry/trace/span_context_kv_iterable.h"
17 #include "opentelemetry/version.h"
30 template <class T, nostd::enable_if_t<common::detail::is_key_value_iterable<T>::value> * =
nullptr>
36 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>>)
59 "Must be a context/key-value iterable");
65 callback)
const noexcept
override
67 auto iter = std::begin(*container_);
69 for (; iter != last; ++iter)
71 if (!this->do_callback(iter->first, iter->second, callback))
87 callback)
const noexcept
89 if (!callback(span_context, attributes))
98 bool do_callback(SpanContext span_context,
101 callback)
const noexcept
107 SpanContext span_context,
108 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>> attributes,
112 return do_callback(span_context,
113 nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
114 attributes.
begin(), attributes.end()},