#ifndef BASE_TRACE_EVENT_TRACED_VALUE_SUPPORT_H_
#define BASE_TRACE_EVENT_TRACED_VALUE_SUPPORT_H_
#include <optional>
#include <string_view>
#include "base/memory/raw_ptr.h"
#include "base/memory/raw_ref.h"
#include "base/memory/scoped_refptr.h"
#include "base/memory/weak_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "base/unguessable_token.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_proto.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
namespace perfetto {
TraceFormatTraits<scoped_refptr<T>, perfetto::check_traced_value_support_t<T>>;
TraceFormatTraits< ::base::WeakPtr<T>, perfetto::check_traced_value_support_t<T>>;
TraceFormatTraits< ::std::optional<T>, perfetto::check_traced_value_support_t<T>>;
TraceFormatTraits< ::base::raw_ptr<T, Traits>, perfetto::check_traced_value_support_t<T>>;
TraceFormatTraits< ::base::raw_ref<T, Traits>, perfetto::check_traced_value_support_t<T>>;
template <>
struct TraceFormatTraits<::base::TimeDelta> { … };
template <>
struct TraceFormatTraits<::base::TimeTicks> { … };
template <>
struct TraceFormatTraits<::base::Time> { … };
template <>
struct TraceFormatTraits<::base::UnguessableToken> { … };
template <>
struct TraceFormatTraits<std::u16string> { … };
TraceFormatTraits<char16_t[N]>;
template <>
struct TraceFormatTraits<const char16_t*> { … };
template <>
struct TraceFormatTraits<std::wstring> { … };
TraceFormatTraits<wchar_t[N]>;
template <>
struct TraceFormatTraits<const wchar_t*> { … };
template <>
struct TraceFormatTraits<::std::u16string_view> { … };
template <>
struct TraceFormatTraits<::std::wstring_view> { … };
}
#endif