Add Pointer::Append(Value, Allocator) overload
This commit is contained in:
parent
5dee394004
commit
771fa9879a
@ -273,6 +273,21 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
//! Append a token by value, and return a new Pointer
|
||||
/*!
|
||||
\param value Value (either Uint or String) to be appended.
|
||||
\param allocator Allocator for the newly return Pointer.
|
||||
\return A new Pointer with appended token.
|
||||
*/
|
||||
GenericPointer Append(const ValueType& token, Allocator* allocator = 0) const {
|
||||
if (token.IsString())
|
||||
return Append(token.GetString(), token.GetStringLength(), allocator);
|
||||
else {
|
||||
RAPIDJSON_ASSERT(token.IsUint64());
|
||||
return Append(static_cast<SizeType>(token.GetUint64()), allocator);
|
||||
}
|
||||
}
|
||||
|
||||
//!@name Handling Parse Error
|
||||
//@{
|
||||
|
||||
|
@ -523,10 +523,20 @@ TEST(Pointer, Append) {
|
||||
Pointer p;
|
||||
Pointer q = p.Append("foo");
|
||||
EXPECT_TRUE(Pointer("/foo") == q);
|
||||
q = q.Append(0);
|
||||
EXPECT_TRUE(Pointer("/foo/0") == q);
|
||||
q = q.Append(1234);
|
||||
EXPECT_TRUE(Pointer("/foo/1234") == q);
|
||||
q = q.Append("");
|
||||
EXPECT_TRUE(Pointer("/foo/0/") == q);
|
||||
EXPECT_TRUE(Pointer("/foo/1234/") == q);
|
||||
}
|
||||
|
||||
{
|
||||
Pointer p;
|
||||
Pointer q = p.Append(Value("foo").Move());
|
||||
EXPECT_TRUE(Pointer("/foo") == q);
|
||||
q = q.Append(Value(1234).Move());
|
||||
EXPECT_TRUE(Pointer("/foo/1234") == q);
|
||||
q = q.Append(Value(kStringType).Move());
|
||||
EXPECT_TRUE(Pointer("/foo/1234/") == q);
|
||||
}
|
||||
|
||||
#if RAPIDJSON_HAS_STDSTRING
|
||||
|
Loading…
x
Reference in New Issue
Block a user