Program Listing for File Quad.hpp¶
↰ Return to documentation for file (src/rdf4cpp/Quad.hpp)
#ifndef RDF4CPP_QUAD_HPP
#define RDF4CPP_QUAD_HPP
#include <rdf4cpp/Statement.hpp>
#include <rdf4cpp/query/QuadPattern.hpp>
namespace rdf4cpp {
struct Quad : query::QuadPattern {
Quad() noexcept = default;
Quad(Node subject, Node predicate, Node object) noexcept;
Quad(Node graph, Node subject, Node predicate, Node object) noexcept;
[[nodiscard]] bool valid() const noexcept;
static std::optional<Quad> create_validated(Node graph, Node subject, Node predicate, Node object) noexcept;
static std::optional<Quad> create_validated(Node subject, Node predicate, Node object) noexcept;
[[nodiscard]] Statement const &without_graph() const noexcept;
[[nodiscard]] Quad to_node_storage(storage::DynNodeStoragePtr node_storage) const;
[[nodiscard]] Quad try_get_in_node_storage(storage::DynNodeStoragePtr node_storage) const noexcept;
bool serialize_ntriples(writer::BufWriterParts writer) const noexcept;
bool serialize_nquads(writer::BufWriterParts writer) const noexcept;
bool serialize_turtle(writer::SerializationState &state, writer::BufWriterParts writer) const noexcept;
bool serialize_trig(writer::SerializationState &state, writer::BufWriterParts writer) const noexcept;
};
} // namespace rdf4cpp
template<typename Policy>
struct dice::hash::dice_hash_overload<Policy, rdf4cpp::Quad> {
static inline size_t dice_hash(rdf4cpp::Quad const &x) noexcept {
return dice::hash::dice_hash_templates<Policy>::dice_hash(std::tie(x.graph(), x.subject(), x.predicate(), x.object()));
}
};
#endif //RDF4CPP_QUAD_HPP