indented std::ostream w/ xalloc()

This commit is contained in:
Michael Davidsaver
2020-07-26 20:46:12 -07:00
parent e8649ecdd2
commit 9328d193af
5 changed files with 151 additions and 41 deletions
+10 -12
View File
@@ -127,10 +127,9 @@ struct FmtTree {
void top(const std::string& member,
const FieldDesc *desc,
const FieldStorage* store,
unsigned level=0)
const FieldStorage* store)
{
indent(strm, level);
strm<<indent{};
if(!desc) {
strm<<"null\n";
return;
@@ -148,10 +147,10 @@ struct FmtTree {
strm<<" {\n";
for(auto& pair : desc->miter) {
auto cdesc = desc + pair.second;
top(pair.first, cdesc, store + pair.second, level+1);
Indented I(strm);
top(pair.first, cdesc, store + pair.second);
}
indent(strm, level);
strm<<"}";
strm<<indent{}<<"}";
if(!member.empty())
strm<<" "<<member;
strm<<"\n";
@@ -174,10 +173,10 @@ struct FmtTree {
}
}
}
Indented I(strm);
top(std::string(),
Value::Helper::desc(fld),
Value::Helper::store_ptr(fld),
level+1);
Value::Helper::store_ptr(fld));
}
break;
case StoreType::Array: {
@@ -190,13 +189,12 @@ struct FmtTree {
auto arr = varr.castTo<const Value>();
strm<<" [\n";
for(auto& val : arr) {
Indented I(strm);
top(std::string(),
Value::Helper::desc(val),
Value::Helper::store_ptr(val),
level+1);
Value::Helper::store_ptr(val));
}
indent(strm, level);
strm<<"]\n";
strm<<indent{}<<"]\n";
}
}
break;