WriteRuntimeContainer static method
dynamic
WriteRuntimeContainer(])
Implementation
static WriteRuntimeContainer(SimpleJsonWriter writer, Container? container,
[bool withoutName = false]) {
writer.WriteArrayStart();
if (container == null) {
return ArgumentError.notNull('container');
}
for (var c in container.content) {
WriteRuntimeObject(writer, c);
}
var namedOnlyContent = container.namedOnlyContent;
var countFlags = container.countFlags;
var hasNameProperty = container.name != null && !withoutName;
var hasTerminator =
namedOnlyContent != null || countFlags > 0 || hasNameProperty;
if (hasTerminator) {
writer.WriteObjectStart();
}
if (namedOnlyContent != null) {
for (var kv in namedOnlyContent.entries) {
var name = kv.key;
var namedContainer = asOrNull<Container>(kv.value);
writer.WritePropertyStart(name);
JsonSerialization.WriteRuntimeContainer(writer, namedContainer, true);
writer.WritePropertyEnd();
}
}
if (hasNameProperty) writer.WriteProperty('#n', container.name);
if (hasTerminator) {
writer.WriteObjectEnd();
} else {
writer.WriteNull();
}
writer.WriteArrayEnd();
}