68class SOURCEMETA_BLAZE_OUTPUT_EXPORT SimpleOutput {
70 SimpleOutput(
const Template &schema_template,
71 const sourcemeta::core::JSON &instance,
72 sourcemeta::core::WeakPointer base =
73 sourcemeta::core::EMPTY_WEAK_POINTER);
76 SimpleOutput(
const SimpleOutput &) =
delete;
77 auto operator=(
const SimpleOutput &) -> SimpleOutput & =
delete;
81 sourcemeta::core::WeakPointer instance_location;
82 sourcemeta::core::WeakPointer evaluate_path;
83 std::reference_wrapper<const std::string> schema_location;
88 sourcemeta::core::WeakPointer instance_location;
89 sourcemeta::core::WeakPointer evaluate_path;
90 std::reference_wrapper<const std::string> schema_location;
91 sourcemeta::core::JSON value;
98 const sourcemeta::core::WeakPointer &evaluate_path,
99 const sourcemeta::core::WeakPointer &instance_location,
100 const sourcemeta::core::JSON &annotation) -> void;
102 using container_type = std::vector<Entry>;
103 using const_iterator = container_type::const_iterator;
104 [[nodiscard]]
auto begin() const -> const_iterator;
105 [[nodiscard]] auto end() const -> const_iterator;
106 [[nodiscard]] auto cbegin() const -> const_iterator;
107 [[nodiscard]] auto cend() const -> const_iterator;
112 [[nodiscard]] auto
release() && -> container_type {
113 auto result{std::move(this->output_)};
116 this->output_.clear();
126 return this->annotations_;
134#pragma warning(disable : 4251)
138 enum class MaskKind : std::uint8_t { None, Disjunction, Element, Subschema };
141 static auto mask_kind(
const Instruction &step)
noexcept -> MaskKind;
147 auto destination(
const sourcemeta::core::WeakPointer &evaluate_path)
153 sourcemeta::core::WeakPointer evaluate_path;
154 sourcemeta::core::WeakPointer instance_location;
156 std::size_t annotations_mark;
157 std::vector<Entry> buffered_traces;
160 const Template &schema_template_;
161 const sourcemeta::core::JSON &instance_;
162 const sourcemeta::core::WeakPointer base_;
163 container_type output_;
164 std::vector<MaskEntry> mask_;
165 std::vector<AnnotationEntry> annotations_;
167#pragma warning(default : 4251)