3#include <knowCore/Uris/Uris.h>
19 Object(
const QString& _string, Type _type);
23 template<
typename _T_, std::enable_if_t<knowCore::Uris::IsUriDefinitionV<_T_>,
int> = 0>
25 template<
typename _T_>
26 static Object fromValue(
const _T_& _value,
const Lang& _lang =
Lang(QString()));
27 template<
typename _T_>
28 static knowCore::ReturnValue<Object> fromValue(
const knowCore::Uri& _dataTypeUri,
const _T_& _value,
const QString& _lang = QString(), knowCore::TypeCheckingMode _conversion = knowCore::TypeCheckingMode::Safe);
33 bool operator==(
const Object& _rhs)
const;
38 QString variableName()
const;
46 QSharedDataPointer<Private> d;
48 template<
typename _T_>
49 Object Object::fromValue(
const _T_& _value,
const Lang& _lang)
51 return Literal::fromValue<_T_>(_value, _lang);
53 template<
typename _T_>
56 const auto [success, literal, message] = Literal::fromValue(_dataTypeUri, _value, _lang, _conversion);
59 return kCrvSuccess(Object(literal));
61 return kCrvError(message);
64 uint qHash(
const Object& key, uint seed = 0);
72 case knowRDF::Object::Type::Undefined:
74 case knowRDF::Object::Type::Uri:
75 return format_to(ctx.out(),
"uri({})", p.uri());
76 case knowRDF::Object::Type::BlankNode:
77 return format_to(ctx.out(),
"blank_node({})", p.blankNode());
78 case knowRDF::Object::Type::Literal:
79 return format_to(ctx.out(),
"literal({})", p.literal());
80 case knowRDF::Object::Type::Variable:
81 return format_to(ctx.out(),
"variable(?{})", p.variableName());
83 return forward(
"undefined()", ctx);
87KNOWCORE_CORE_DECLARE_FORMATTER_ENUM(knowRDF::Object::Type, Undefined, Uri, BlankNode, Literal, Variable);
89#include <knowCore/MetaType.h>
90KNOWCORE_DECLARE_FULL_METATYPE(knowRDF, Object)
Definition MetaType.h:114
Definition NamedType.h:40
Definition ReturnValue.h:29
Definition MetaType.h:145
Definition BlankNode.h:23