#include "components/attribution_reporting/aggregation_keys.h"
#include <optional>
#include <string>
#include <utility>
#include "base/check.h"
#include "base/metrics/histogram_base.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "base/types/expected.h"
#include "base/types/expected_macros.h"
#include "base/values.h"
#include "components/attribution_reporting/constants.h"
#include "components/attribution_reporting/parsing_utils.h"
#include "components/attribution_reporting/source_registration_error.mojom.h"
#include "third_party/abseil-cpp/absl/numeric/int128.h"
namespace attribution_reporting {
namespace {
SourceRegistrationError;
bool IsValid(const AggregationKeys::Keys& keys) { … }
void RecordAggregatableKeysPerSource(base::HistogramBase::Sample count) { … }
}
std::optional<AggregationKeys> AggregationKeys::FromKeys(Keys keys) { … }
base::expected<AggregationKeys, SourceRegistrationError>
AggregationKeys::FromJSON(const base::Value* value) { … }
AggregationKeys::AggregationKeys(Keys keys) : … { … }
AggregationKeys::AggregationKeys() = default;
AggregationKeys::~AggregationKeys() = default;
AggregationKeys::AggregationKeys(const AggregationKeys&) = default;
AggregationKeys::AggregationKeys(AggregationKeys&&) = default;
AggregationKeys& AggregationKeys::operator=(const AggregationKeys&) = default;
AggregationKeys& AggregationKeys::operator=(AggregationKeys&&) = default;
base::Value::Dict AggregationKeys::ToJson() const { … }
}