value_t Hash::to_s(Hash *self) { RecursionDetector<RecursionType::Hash_to_s, false> rd(self); if(rd.recursion()) return String::get("{...}"); CharArray result = "{"; OnStack<1> os1(self); OnStackString<1> os2(result); HashAccess::each_pair(self, [&](value_t key, value_t value) -> bool { OnStack<1> os(value); result += inspect(key); result += "=>"; result += inspect(value); result += ", "; return true; }); if(result.size() > 1) result.shrink(result.size() - 2); result += "}"; return result.to_string(); }