public IEnumerable <string> GetLines(PrettificationSettings settings) { settings ??= Prettification.DefaultPrettificationSettings; settings = settings.JsonClone(); settings.PreferredLineStyle.Set(LineStyle.Single); var prettyCells = Cells.Select(it => it.Prettify(settings)).ToList(); if (Header != null) { var headerStr = Header.Prettify(settings); int longestCell = prettyCells.LongestLine(); int longestLine = longestCell.Max(headerStr.Length); var separatorLine = (settings.TableHeaderSeparator.Value ?? " ").Fill(longestLine); return(new[] { headerStr, separatorLine }.Concat(prettyCells)); } return(prettyCells); }
public static string PrettifyEnumerable( [NotNull][ItemCanBeNull] IEnumerable enumerable, [NotNull] PrettificationSettings settings ) { var asObjects = enumerable.Cast <object>(); var enumerableType = enumerable.GetType(); var lineStyle = settings?.PreferredLineStyle.Value ?? default; var innerSettings = settings.JsonClone( it => { it.EnumLabelStyle.Set(TypeNameStyle.None); it.TypeLabelStyle.Set(it.TypeLabelStyle.Value.Reduce()); } ); return(lineStyle switch { LineStyle.Dynamic => PrettifyEnumerable_DynamicLine(asObjects, enumerableType, settings, innerSettings), LineStyle.Multi => PrettifyEnumerable_MultiLine(asObjects, enumerableType, settings, innerSettings), LineStyle.Single => PrettifyEnumerable_SingleLine(asObjects, enumerableType, settings, innerSettings), _ => throw BEnum.InvalidEnumArgumentException(nameof(PrettificationSettings.PreferredLineStyle), lineStyle) });