19 enum class DocumentMetadataType : std::uint8_t
64 enum class DocumentMetadataItemFlags : std::uint8_t
69 kDocumentMetadataTypeAndValueValid = 4,
72 kAll = kPrimaryKeyValid | kNameValid | kDocumentMetadataTypeAndValueValid,
73 kAllWithCompletePath = kAll | kCompletePath
81 inline constexpr DocumentMetadataItemFlags operator|(DocumentMetadataItemFlags x, DocumentMetadataItemFlags y)
83 return static_cast<DocumentMetadataItemFlags
>(
static_cast<std::underlying_type_t<DocumentMetadataItemFlags>
>(x) |
static_cast<std::underlying_type_t<DocumentMetadataItemFlags>
>(y));
91 inline constexpr DocumentMetadataItemFlags operator&(DocumentMetadataItemFlags x, DocumentMetadataItemFlags y)
93 return static_cast<DocumentMetadataItemFlags
>(
static_cast<std::underlying_type_t<DocumentMetadataItemFlags>
>(x) &
static_cast<std::underlying_type_t<DocumentMetadataItemFlags>
>(y));
99 inline constexpr DocumentMetadataItemFlags operator~(DocumentMetadataItemFlags x)
101 return static_cast<DocumentMetadataItemFlags
>(~static_cast<std::underlying_type_t<DocumentMetadataItemFlags>>(x));
107 DocumentMetadataItemFlags
flags{ DocumentMetadataItemFlags::None };
108 imgdoc2::dbIndex
primary_key{ std::numeric_limits<imgdoc2::dbIndex>::max() };
111 DocumentMetadataType
type{ DocumentMetadataType::kInvalid };
151 std::optional<imgdoc2::dbIndex> parent,
153 DocumentMetadataItemFlags flags,
166 const std::string& path,
168 DocumentMetadataItemFlags flags,
199 std::optional<imgdoc2::dbIndex> parent,
200 bool create_node_if_not_exists,
201 const std::string& name,
202 DocumentMetadataType type,
218 bool create_path_if_not_exists,
219 bool create_node_if_not_exists,
220 const std::string& path,
221 DocumentMetadataType type,
235 std::optional<imgdoc2::dbIndex> primary_key,
236 bool recursively) = 0;
249 const std::string& path,
250 bool recursively) = 0;