#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_MANIFEST_MANIFEST_MOJOM_TRAITS_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_MANIFEST_MANIFEST_MOJOM_TRAITS_H_
#include <optional>
#include <string_view>
#include <vector>
#include "base/strings/utf_string_conversions.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/manifest/manifest.h"
#include "third_party/blink/public/mojom/manifest/manifest.mojom.h"
#include "third_party/blink/public/mojom/safe_url_pattern.mojom.h"
namespace mojo {
namespace internal {
inline std::u16string_view TruncateString16(const std::u16string& string) { … }
inline std::optional<std::u16string_view> TruncateOptionalString16(
const std::optional<std::u16string>& string) { … }
inline std::optional<std::u16string_view> ConvertAndTruncateOptionalString(
const std::optional<std::string>& string) { … }
}
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestImageResourceDataView,
::blink::Manifest::ImageResource> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestShortcutItemDataView,
::blink::Manifest::ShortcutItem> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestRelatedApplicationDataView,
::blink::Manifest::RelatedApplication> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestFileFilterDataView,
::blink::Manifest::FileFilter> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestShareTargetParamsDataView,
::blink::Manifest::ShareTargetParams> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestShareTargetDataView,
::blink::Manifest::ShareTarget> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestLaunchHandlerDataView,
::blink::Manifest::LaunchHandler> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::ManifestTranslationItemDataView,
::blink::Manifest::TranslationItem> { … };
template <>
struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::HomeTabParamsDataView,
::blink::Manifest::HomeTabParams> { … };
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::NewTabButtonParamsDataView,
::blink::Manifest::NewTabButtonParams> { … };
template <>
struct BLINK_COMMON_EXPORT UnionTraits<blink::mojom::HomeTabUnionDataView,
::blink::Manifest::TabStrip::HomeTab> { … };
template <>
struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::ManifestTabStripDataView,
::blink::Manifest::TabStrip> { … };
}
#endif