#include "tools/binary_size/libsupersize/viewer/caspian/diff.h"
#include <cmath>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <string>
#include <string_view>
#include <unordered_map>
#include <utility>
#include <vector>
#include "third_party/re2/src/re2/re2.h"
namespace {
struct SymbolMatchIndex { … };
}
namespace std {
template <>
struct hash<SymbolMatchIndex> { … };
}
namespace {
template <class T, class Allocator, class Value>
void Erase(std::vector<T, Allocator>& container, const Value& value) { … }
std::string_view GetIdPath(const caspian::Symbol& sym) { … }
int MatchSymbols(
std::function<SymbolMatchIndex(const caspian::Symbol&)> key_func,
std::vector<caspian::DeltaSymbol>* delta_symbols,
std::vector<const caspian::Symbol*>* unmatched_before,
std::vector<const caspian::Symbol*>* unmatched_after,
std::unordered_map<caspian::SectionId, float>* padding_by_section_name,
bool is_sparse) { … }
class DiffHelper { … };
}
namespace caspian {
DeltaSizeInfo Diff(const SizeInfo* before,
const SizeInfo* after,
const std::vector<std::string>* removed_sources,
const std::vector<std::string>* added_sources) { … }
}