72 sourcemeta::core::WeakPointer base =
73 sourcemeta::core::empty_weak_pointer);
81 sourcemeta::core::WeakPointer instance_location;
82 sourcemeta::core::WeakPointer evaluate_path;
83 std::reference_wrapper<const std::string> schema_location;
89 const sourcemeta::core::WeakPointer &evaluate_path,
90 const sourcemeta::core::WeakPointer &instance_location,
91 const sourcemeta::core::JSON &annotation) -> void;
93 using container_type =
typename std::vector<Entry>;
94 using const_iterator =
typename container_type::const_iterator;
95 [[nodiscard]]
auto begin() const -> const_iterator;
96 [[nodiscard]] auto end() const -> const_iterator;
97 [[nodiscard]] auto cbegin() const -> const_iterator;
98 [[nodiscard]] auto cend() const -> const_iterator;
102 [[nodiscard]] auto annotations() const -> const auto & {
103 return this->annotations_;
108 auto operator<(
const Location &other)
const noexcept ->
bool {
110 return std::tie(this->instance_location, this->evaluate_path,
111 this->schema_location.get()) <
112 std::tie(other.instance_location, other.evaluate_path,
113 other.schema_location.get());
117 const sourcemeta::core::WeakPointer instance_location;
118 const sourcemeta::core::WeakPointer evaluate_path;
119 const std::reference_wrapper<const std::string> schema_location;
128#pragma warning(disable : 4251)
130 const sourcemeta::core::JSON &instance_;
131 const sourcemeta::core::WeakPointer base_;
132 container_type output;
134 std::pair<sourcemeta::core::WeakPointer, sourcemeta::core::WeakPointer>>
137 std::pair<sourcemeta::core::WeakPointer, sourcemeta::core::WeakPointer>,
140 std::map<Location, std::vector<sourcemeta::core::JSON>> annotations_;
142#pragma warning(default : 4251)