1#include <knowCore/MetaTypeImplementation.h>
6 return kCrvSuccess(_value.md5());
8 ReturnValue<QJsonValue> toJsonValue(
const knowCore::BigNumber& _value,
const SerialisationContexts&)
const override
10 const auto [success, value, errorMessage] = _value.
toInt64();
11 Q_UNUSED(errorMessage);
13 if(success and value > -9007199254740992 and value < 9007199254740992)
15 return kCrvSuccess(QJsonValue(value));
17 return kCrvSuccess(QJsonValue(_value.toString()));
20 ReturnVoid fromJsonValue(
knowCore::BigNumber* _value,
const QJsonValue& _json_value,
const DeserialisationContexts&)
const override
22 if(_json_value.isDouble())
24 *_value =
BigNumber(_json_value.toDouble());
26 }
else if(_json_value.isString())
28 KNOWCORE_RETURN_VALUE_TRY_ASSIGN(*_value, BigNumber::fromString(_json_value.toString()));
31 return expectedError(
"number", _json_value);
34 ReturnValue<QCborValue> toCborValue(
const knowCore::BigNumber& _value,
const SerialisationContexts&)
const override
36 const auto [success, value, errorMessage] = _value.
toInt64();
37 Q_UNUSED(errorMessage);
40 return kCrvSuccess(QCborValue(value));
42 return kCrvSuccess(_value.toString());
45 ReturnVoid fromCborValue(
knowCore::BigNumber* _value,
const QCborValue& _cbor_value,
const DeserialisationContexts&)
const override
47 if(_cbor_value.isInteger())
49 *_value =
BigNumber(_cbor_value.toInteger());
51 }
else if(_cbor_value.isString())
53 KNOWCORE_RETURN_VALUE_TRY_ASSIGN(*_value, BigNumber::fromString(_cbor_value.toString()));
56 return expectedError(
"number", _cbor_value);
61 return kCrvSuccess(_value.toString());
63 ReturnValue<QString> toRdfLiteral(
const knowCore::BigNumber& _value,
const SerialisationContexts&)
const override
65 return kCrvSuccess(_value.toString());
67 ReturnVoid fromRdfLiteral(
knowCore::BigNumber* _value,
const QString& _serialised,
const DeserialisationContexts&)
const override
69 KNOWCORE_RETURN_VALUE_TRY_ASSIGN(*_value, BigNumber::fromString(_serialised));
Class that can contains large numeric value.
Definition BigNumber.h:46
ReturnValue< qint64 > toInt64(bool _truncate=false) const
Definition BigNumber.cpp:267