clang 23.0.0git
EntityPointerLevelFormat.h
Go to the documentation of this file.
1//===- EntityPointerLevelFormat.h -------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_ENTITYPOINTERLEVEL_ENTITYPOINTERLEVELFORMAT_H
10#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_ENTITYPOINTERLEVEL_ENTITYPOINTERLEVELFORMAT_H
11
15#include "llvm/ADT/iterator_range.h"
16#include <map>
17
18namespace clang::ssaf {
19llvm::json::Value
20entityPointerLevelToJSON(const EntityPointerLevel &EPL,
21 JSONFormat::EntityIdToJSONFn EntityId2JSON);
22
23Expected<EntityPointerLevel>
24entityPointerLevelFromJSON(const llvm::json::Value &EPLData,
25 JSONFormat::EntityIdFromJSONFn EntityIdFromJSON);
26
27llvm::json::Array entityPointerLevelSetToJSON(
28 llvm::iterator_range<EntityPointerLevelSet::const_iterator> EPLs,
29 JSONFormat::EntityIdToJSONFn EntityId2JSON);
30
31Expected<EntityPointerLevelSet>
32entityPointerLevelSetFromJSON(const llvm::json::Array &EPLsData,
33 JSONFormat::EntityIdFromJSONFn EntityIdFromJSON);
34
35/// Serialize a map<EntityId, EntityPointerLevelSet> as a flat array of
36/// alternating [EntityId, EntityPointerLevelSet, ...] pairs.
37llvm::json::Array entityPointerLevelMapToJSON(
38 const std::map<EntityId, EntityPointerLevelSet> &Map,
40
41/// Deserialize a flat array of alternating [EntityId, EntityPointerLevelSet,
42/// ...] pairs into a map.
43Expected<std::map<EntityId, EntityPointerLevelSet>>
44entityPointerLevelMapFromJSON(const llvm::json::Array &Content,
46} // namespace clang::ssaf
47
48#endif // LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_ENTITYPOINTERLEVEL_ENTITYPOINTERLEVELFORMAT_H
llvm::function_ref< llvm::Expected< EntityId >(const Object &)> EntityIdFromJSONFn
Definition JSONFormat.h:71
llvm::function_ref< Object(EntityId)> EntityIdToJSONFn
Definition JSONFormat.h:70
Expected< std::map< EntityId, EntityPointerLevelSet > > entityPointerLevelMapFromJSON(const llvm::json::Array &Content, JSONFormat::EntityIdFromJSONFn IdFromJSON)
Deserialize a flat array of alternating [EntityId, EntityPointerLevelSet, ...] pairs into a map.
llvm::json::Array entityPointerLevelSetToJSON(llvm::iterator_range< EntityPointerLevelSet::const_iterator > EPLs, JSONFormat::EntityIdToJSONFn EntityId2JSON)
llvm::json::Value entityPointerLevelToJSON(const EntityPointerLevel &EPL, JSONFormat::EntityIdToJSONFn EntityId2JSON)
Expected< EntityPointerLevelSet > entityPointerLevelSetFromJSON(const llvm::json::Array &EPLsData, JSONFormat::EntityIdFromJSONFn EntityIdFromJSON)
Expected< EntityPointerLevel > entityPointerLevelFromJSON(const llvm::json::Value &EPLData, JSONFormat::EntityIdFromJSONFn EntityIdFromJSON)
llvm::json::Array entityPointerLevelMapToJSON(const std::map< EntityId, EntityPointerLevelSet > &Map, JSONFormat::EntityIdToJSONFn IdToJSON)
Serialize a map<EntityId, EntityPointerLevelSet> as a flat array of alternating [EntityId,...