chromium/components/sync/protocol/proto_memory_estimations.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SYNC_PROTOCOL_PROTO_MEMORY_ESTIMATIONS_H_
#define COMPONENTS_SYNC_PROTOCOL_PROTO_MEMORY_ESTIMATIONS_H_

#include <stddef.h>

namespace sync_pb {

// Estimates memory usage for a proto.
// Needs to be in sync_pb namespace for ADL to find it (when for example
// EstimateMemoryUsage() is called on a list of protos).
// Note: if you get linking errors you need to add explicit instantiation at
// the end of the implementation file.
template <class P>
size_t EstimateMemoryUsage(const P& proto);

}  // namespace sync_pb

#endif  // COMPONENTS_SYNC_PROTOCOL_PROTO_MEMORY_ESTIMATIONS_H_