#include "extensions/common/mojom/url_pattern_set_mojom_traits.h"
namespace mojo {
bool StructTraits<extensions::mojom::URLPatternDataView, URLPattern>::Read(
extensions::mojom::URLPatternDataView data,
URLPattern* out) {
std::string pattern;
if (!data.ReadPattern(&pattern))
return false;
out->SetValidSchemes(URLPattern::SCHEME_ALL);
URLPattern::ParseResult result = out->Parse(pattern);
out->SetValidSchemes(data.valid_schemes());
return URLPattern::ParseResult::kSuccess == result;
}
bool StructTraits<extensions::mojom::URLPatternSetDataView,
extensions::URLPatternSet>::
Read(extensions::mojom::URLPatternSetDataView data,
extensions::URLPatternSet* out) {
std::vector<URLPattern> mojo_patterns;
if (!data.ReadPatterns(&mojo_patterns))
return false;
for (const auto& pattern : mojo_patterns)
out->AddPattern(pattern);
if (mojo_patterns.size() != out->patterns().size())
return false;
return true;
}
}