chromium/tools/binary_size/libsupersize/viewer/caspian/model.h

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

#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_VIEWER_CASPIAN_MODEL_H_
#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_VIEWER_CASPIAN_MODEL_H_

#include <stdint.h>
#include <stdlib.h>

#include <array>
#include <deque>
#include <functional>
#include <map>
#include <ostream>
#include <string>
#include <string_view>
#include <vector>

#include "third_party/jsoncpp/source/include/json/json.h"
#include "tools/binary_size/libsupersize/viewer/caspian/grouped_path.h"

// Copied from representation in tools/binary_size/libsupersize/models.py

namespace caspian {

constexpr char kStringLiteralName[] =;

enum class ArtifactType : char {};

enum class SectionId : char {};

enum class DiffStatus : uint8_t {};

class SymbolFlag {};

struct Container {};

class Symbol;

class BaseSymbol {};

struct BaseSizeInfo;
class Symbol;

class Symbol : public BaseSymbol {};

class DeltaSymbol : public BaseSymbol {};

std::ostream& operator<<(std::ostream& os, const Symbol& sym);

struct BaseSizeInfo {};

struct SizeInfo : BaseSizeInfo {};

struct DeltaSizeInfo : BaseSizeInfo {};

struct JsonWriteOptions {};

struct Stat {};

struct NodeStats {};

class TreeNodeFactory;

struct TreeNode {};

class TreeNodeFactory {};

}  // namespace caspian
#endif  // TOOLS_BINARY_SIZE_LIBSUPERSIZE_VIEWER_CASPIAN_MODEL_H_