Struct NodeID

Nested Relationships

Nested Types

Struct Documentation

struct NodeID

NodeID is an 48 bit identifier for a Node given a NodeManager. If the Node is a Literal, The 48 bits consist of a LiteralID (42 bits) and a LiteralType (6 bits).

Public Types

using underlying_type = uint64_t

Public Functions

constexpr NodeID() = default
inline explicit constexpr NodeID(underlying_type const underlying) noexcept

Constructs a LiteralID from a single unsigned integer.

Parameters:

value – literal ID. MUST be smaller than 2^48. Bounds are not checked.

inline constexpr NodeID(LiteralID const literal_id, LiteralType const literal_type) noexcept
inline constexpr LiteralID literal_id() const noexcept

Get LiteralID. This method does not check if the NodeID actually represents a literal.

Returns:

inline constexpr LiteralType literal_type() const noexcept

Get LiteralType. This method does not check if the NodeID actually represents a literal.

Returns:

inline constexpr underlying_type to_underlying() const noexcept
inline constexpr bool null() const noexcept
inline explicit operator underlying_type() const noexcept
inline constexpr std::strong_ordering operator<=>(NodeID const &other) const noexcept
inline constexpr bool operator==(NodeID const &other) const noexcept

Public Members

underlying_type underlying_
literal_id_parts literal_parts_

Public Static Attributes

static constexpr size_t width = 48
static NodeID const min_bnode_id = {1}
static NodeID const min_iri_id = {datatypes::registry::min_dynamic_datatype_id}
static NodeID const min_variable_id = {1}
static LiteralID const min_literal_id = {1}