1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_ADDRESSINPUT_UTIL_H_ 6#define THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_ADDRESSINPUT_UTIL_H_ 7 8#include <map> 9 10#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_field.h" 11#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_problem.h" 12 13namespace i18n { 14namespace addressinput { 15struct AddressData; 16} 17} 18 19namespace autofill { 20namespace addressinput { 21 22// Returns true if |address_to_check| has all of its required fields. 23bool HasAllRequiredFields( 24 const ::i18n::addressinput::AddressData& address_to_check); 25 26// Validates required fields in |address_to_check| without loading rules from 27// the server. The |problems| parameter cannot be NULL. Does not take ownership 28// of its parameters. 29// 30// See documentation of ::i18n::addressinput::AddressValidator::Validate() for 31// description of |filter| and |problems|. 32void ValidateRequiredFields( 33 const ::i18n::addressinput::AddressData& address_to_check, 34 const std::multimap< ::i18n::addressinput::AddressField, 35 ::i18n::addressinput::AddressProblem>* filter, 36 std::multimap< ::i18n::addressinput::AddressField, 37 ::i18n::addressinput::AddressProblem>* problems); 38 39} // namespace addressinput 40} // namespace autofill 41 42#endif // THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_ADDRESSINPUT_UTIL_H_ 43