21#ifndef KICAD_MERGE_ENGINE_H
22#define KICAD_MERGE_ENGINE_H
28#include <nlohmann/json_fwd.hpp>
97 nlohmann::json
ToJson()
const;
106 std::vector<PROPERTY_RESOLUTION>
props;
109 nlohmann::json
ToJson()
const;
131 nlohmann::json ToJson()
const;
132 static MERGE_PLAN FromJson(
const nlohmann::json& aJson );
bool operator==(const wxAuiPaneInfo &aLhs, const wxAuiPaneInfo &aRhs)
A typed sum value used to carry the before/after of any single property.
const OPTIONS & GetOptions() const
KICAD_MERGE_ENGINE()=default
void SetOptions(const OPTIONS &aOptions)
KICAD_MERGE_ENGINE(const OPTIONS &aOptions)
ITEM_RES
Resolution kind for a whole item.
const char * PropResToString(PROP_RES aRes)
Canonical lower-case spellings for PROP_RES used inside the JSON serialization of PROPERTY_RESOLUTION...
PROP_RES PropResFromString(const std::string &aStr)
PROPERTY_RESOLUTION_OUTCOME ResolvePropertyConflict(const PROPERTY_DELTA *aOurs, const PROPERTY_DELTA *aTheirs, const KICAD_MERGE_ENGINE::OPTIONS &aOptions)
Decide how to resolve a single property edit between two sides.
ITEM_RES ItemResFromString(const std::string &aStr)
PROP_RES
Resolution kind for a single property of a single item.
const char * ItemResToString(ITEM_RES aRes)
Canonical snake_case spellings used in MERGE_PLAN JSON serialization (take_ours / take_theirs / take_...
The full set of changes between two parsed documents of one type.
std::vector< PROPERTY_RESOLUTION > props
static ITEM_RESOLUTION FromJson(const nlohmann::json &aJson)
nlohmann::json ToJson() const
bool preferAutoMerge
When true, property-orthogonal edits auto-merge silently.
bool autoResolveEqualValues
When true and a property edit conflicts but the side values are equal, the resolution is automaticall...
Result of planning a 3-way merge.
std::size_t ConflictCount() const
bool requiresConnectivityRebuild
std::vector< ITEM_RESOLUTION > actions
std::vector< KIID_PATH > unresolved
Single (name, before, after) triple for one mutated property on an item.
Per-property merge decision result.
static PROPERTY_RESOLUTION FromJson(const nlohmann::json &aJson)
nlohmann::json ToJson() const