private static void PrintItem(INoggolloquyObjectGetter nogg, ushort i, object o, DepthPrinter dp) { }
public static string PrintPretty(this INoggolloquyObjectGetter obj, DepthPrinter depthPrinter) { depthPrinter.AddLine(obj.NoggolloquyName + "=>"); return(PrintPrettyInternal(obj, depthPrinter)); }
private static string PrintPrettyInternal(this INoggolloquyObjectGetter nogg, DepthPrinter depthPrinter) { depthPrinter.AddLine("["); using (depthPrinter.IncrementDepth()) { for (ushort i = 0; i < nogg.FieldCount; i++) { var obj = nogg.GetNthObject(i); if (nogg.GetNthIsEnumerable(i)) { if (obj is IEnumerable listObj) { bool hasItems = listObj.Any(); depthPrinter.AddLine(nogg.GetNthName(i) + " => " + (hasItems ? string.Empty : "[ ]")); if (hasItems) { depthPrinter.AddLine("["); using (depthPrinter.IncrementDepth()) { foreach (var listItem in listObj) { if (nogg.GetNthIsNoggolloquy(i)) { if (listItem is INoggolloquyObjectGetter subNogg) { depthPrinter.AddLine(PrintNoggName(nogg, i)); PrintPrettyInternal(subNogg, depthPrinter); } continue; } depthPrinter.AddLine(obj.ToStringSafe() + ","); } } depthPrinter.AddLine("]"); } } continue; } if (nogg.GetNthIsNoggolloquy(i)) { if (obj is INoggolloquyObjectGetter subNogg) { depthPrinter.AddLine(PrintNoggName(nogg, i)); PrintPrettyInternal(subNogg, depthPrinter); } continue; } depthPrinter.AddLine(nogg.GetNthName(i) + ": " + obj.ToStringSafe()); } } depthPrinter.AddLine("]"); return(depthPrinter.ToString()); }