Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
        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)
            });