#ifndef PRINTING_BACKEND_MOJOM_PRINT_BACKEND_MOJOM_TRAITS_H_
#define PRINTING_BACKEND_MOJOM_PRINT_BACKEND_MOJOM_TRAITS_H_
#include <string>
#include <vector>
#include "build/build_config.h"
#include "printing/backend/mojom/print_backend.mojom-shared.h"
#include "printing/backend/print_backend.h"
#include "printing/mojom/print.mojom.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
namespace mojo {
template <>
struct StructTraits<printing::mojom::PrinterBasicInfoDataView,
printing::PrinterBasicInfo> { … };
template <>
struct StructTraits<printing::mojom::PaperDataView,
printing::PrinterSemanticCapsAndDefaults::Paper> { … };
template <>
struct StructTraits<printing::mojom::MediaTypeDataView,
printing::PrinterSemanticCapsAndDefaults::MediaType> { … };
#if BUILDFLAG(IS_CHROMEOS)
template <>
struct EnumTraits<printing::mojom::AdvancedCapabilityType,
::printing::AdvancedCapability::Type> {
static printing::mojom::AdvancedCapabilityType ToMojom(
::printing::AdvancedCapability::Type input);
static bool FromMojom(printing::mojom::AdvancedCapabilityType input,
::printing::AdvancedCapability::Type* output);
};
template <>
struct StructTraits<printing::mojom::AdvancedCapabilityValueDataView,
::printing::AdvancedCapabilityValue> {
static const std::string& name(const ::printing::AdvancedCapabilityValue& v) {
return v.name;
}
static const std::string& display_name(
const ::printing::AdvancedCapabilityValue& v) {
return v.display_name;
}
static bool Read(printing::mojom::AdvancedCapabilityValueDataView data,
::printing::AdvancedCapabilityValue* out);
};
template <>
struct StructTraits<printing::mojom::AdvancedCapabilityDataView,
::printing::AdvancedCapability> {
static const std::string& name(const ::printing::AdvancedCapability& c) {
return c.name;
}
static const std::string& display_name(
const ::printing::AdvancedCapability& c) {
return c.display_name;
}
static ::printing::AdvancedCapability::Type type(
const ::printing::AdvancedCapability& c) {
return c.type;
}
static const std::string& default_value(
const ::printing::AdvancedCapability& c) {
return c.default_value;
}
static const std::vector<::printing::AdvancedCapabilityValue>& values(
const ::printing::AdvancedCapability& c) {
return c.values;
}
static bool Read(printing::mojom::AdvancedCapabilityDataView data,
::printing::AdvancedCapability* out);
};
#endif
#if BUILDFLAG(IS_WIN)
template <>
struct StructTraits<printing::mojom::PageOutputQualityAttributeDataView,
::printing::PageOutputQualityAttribute> {
static const std::string& display_name(
const ::printing::PageOutputQualityAttribute& p) {
return p.display_name;
}
static const std::string& name(
const ::printing::PageOutputQualityAttribute& p) {
return p.name;
}
static bool Read(printing::mojom::PageOutputQualityAttributeDataView data,
printing::PageOutputQualityAttribute* out);
};
template <>
struct StructTraits<printing::mojom::PageOutputQualityDataView,
printing::PageOutputQuality> {
static const std::vector<::printing::PageOutputQualityAttribute>& qualities(
const ::printing::PageOutputQuality& p) {
return p.qualities;
}
static const std::optional<std::string>& default_quality(
const ::printing::PageOutputQuality& p) {
return p.default_quality;
}
static bool Read(printing::mojom::PageOutputQualityDataView data,
printing::PageOutputQuality* out);
};
#endif
template <>
struct StructTraits<printing::mojom::PrinterSemanticCapsAndDefaultsDataView,
printing::PrinterSemanticCapsAndDefaults> { … };
}
#endif