All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
#[tabled(display(Type, "function", arg1, arg2))]
- a derive helper (propoused by @georgewhewell). - Added
Table::kv
- a new type of table layout. - Added new
Span
logic with negative and 0 spans. - Added
LineText::align
to stick text on border to specific location. - Added
LayoutIterator
to navigateTable::kv
easier. - Added
Tabled
implementation forOption<T>
.
- Renamed
#[tabled(display_with)]
into#[tabled(display)]
. - Changed MSRV to the 1.83.
- Removed owo-colors dependency.
- Migrated owo-colors to 3.5 (by @joshtriplett).
- Migrated heck to 0.5 (by @marxin).
- Migrated syn to 2.0 (By @wyatt-herkamp).
- Fixed
clippy
issues (by @joshtriplett).
- Added
Color::rgb_fg
,Color::rgb_bg
(by @k86td) - Added
ObjectIterator
: so things likeRows::new(1..10).step_by(2)
be possible. - Added support for
Rows::last() + 100
andColumns::last() + 100
add operation. - Added
left|right
specifiers toPriorityMax
andPriorityMin
. - Added
Priority
factory to create different priorities. Basically a more convinient way. - Added a descriptive error message to
testing_table::assert_table
. - Added
Builder::from(HashMap::new())
implementation. - Added
CleanCharset::clean("")
function for cases where we build a table byBuilder
.
- Switched back to upstream
unicode-width
crate (by @joshtriplett). - Migrated from proc-macro-error to proc-macro-error2 (by @welpo).
- Refactorings to improve code quality further.
- Made Charset::clean method more presise so we can hopefully work with latest
unicode-width
. - Improved Wrap algorithm. As it was misstreating new lines characters.
- Splited
Padding
toPadding
andPaddingColor
. - Splited
Margin
toMargin
andMarginColor
. - Changed
Highlight
interface. - Changed
Border
andBorderColor
implementation when applied to table, so it sets a frame rather then all cells. - Renamed
Disable
intoRemove
. - Set CI MSRV check to 1.66.
- Fixed docs (by @joshtriplett).
- Fixed docs (by @akiomik).
- Fixed clippy (by @akiomik).
- Added absent license in
testing_table
(by @michel-slm). - Fix removal of 1st line in
Theme::remove_horizontal_lines
when used fromTheme::from(Style::*)
. - Fix
Disable::row
issue when it was not deleting a row.
- Added
#[tabled(crate = "")]
attribute. - Added
#[tabled(format = "", format(""))]
attribute. - Support for expressions in
#[tabled(display_with(""))]
- Added tupple combinations of settings, just as
Settings
does. - Added
PriorityRight
andPriorityLeft
priorities. - Created back
Layout
/Reverse
/MarginColor
/PaddingColor
. - Added custom template setting in
ExtendedTable
(by @brianheineman)
- Stabilized
unicode-width
dependency so we expect the outcome (but probably there shall be done adjustments for it further support). - Work on format macros (by @thomassimmer).
- Renamed
wrap::wrap_text
andtruncate::truncate_text
. - Renamed
CellInfo
toText
. - Changed interface of
Theme
and splitted into other structs. - Changed
Width
/Height::priority
interface so it's no longer generic.
- Fix issue with `Cow`` usage in derive.
- Fix
Builder::push_column
(by @zxch3n). - Fix
README.md
(by @akiomik). - Fix
README.md
(by @fbonin). - Fix spellings (by @Alexdelia).
- Fix spellings (by @xeruf).
- Fix spellings (by @strange-dv).
- Fix spellings (by @rcorre).
- Fix docs (by @jvanbuel).
- Fix docs (by @obi1kenobi).
- Fix CI issues (by @akiomik).
- Added
Table::modify
as an option toModify
usage, which make cleaner code. - Added more features to
themes::Theme
. - Added a new setting
Reverse
to reverse the table. - Added vertical support for
LineText
. - Added
ByContent
locator. - Added
ByCondition
locator. - Added
Locator
factory forLocation
s. - Added tabled features to all subprojects to be able to reduce binary size.
- Move
Style
to const implementation (it involved changes toBorder
/BorderColor
and more related subjects). - Added a basic implementation for a render.
- Added a new
Style
(by @Brijeshkrishna). - Refactored a
Builder
methods (by @CouldBeFree) - Changed
ColumnNames
interface. - Changed
LineText
interface. - Changed
IntoRecords
interface. - Reordered
TableOption
interface. - Renamed
BorderText
toLineText
. - Renamed
BorderChar
toLineChar
. - Renamed
RawStyle
tothemes::Theme
. - Renamed
Locator
toLocation
. - Renamed
papergrid::Color
trait toANSIFmt
. - Renamed
papergrid::StaticColor
trait toANSIStr
. - Renamed
papergrid::ColorBuf
trait toANSIBuf
. - Renamed
color
feature toansi
.
- Fix
IndexBuilder::is_empty
function (by @pjhades). - Fix a clippy warning in
tabled_derive
. - Fix spelling mistakes (by @oliashish).
- Fix spelling mistakes (by @Kobzol).
- Added
settings::Dup
to toplicate content. - Added
settings::themes::ColumnNames
to set text on border (adjusted to cells). - Added
Xor
implementation forColor
. - Added
Colorization
to set colors of table by a pattern.
- Added
TableOption::hint_change
method as an optimization vector.
ColumnNames
interface was changed.
ColumnNames
alignment issue.
- Added
settings::Dup
to toplicate content. - Added
settings::themes::ColumnNames
to set text on border (adjusted to cells). - Added
Xor
implementation forColor
. - Added
Colorization
to set colors of table by a pattern.
- Fixed wrapping algorithm (
tabled::settings::Wrap::keep_words
) forcolor
feature.
- Improved
Wrap
by reducing ansi usage (at the end of a line in some cases).
- Fixed ansi issue related to
ansi-str
by bumping it.
- Made a list of changes to
tabled
. - Made a list of changes to
papergrid
interface.
- Fixed
PoolTable
vertical intersection issue.
- Created
static_table
a macro to build tables at compile time. - Created
ron_to_table
format conversion library. - Added
IterTable
a table with a different backend logic. - Added
CompactTable
a table with a different backend logic. - Added
PoolTable
a table with a different backend logic. - Added
tabled(display_with("function", arg1, arg2))
custom arguments support. - Added
Split
setting fortabled::Table
(by @IsaacCloos). - Added more property based tests (by @arunma)
- Added dependabot integration (by @danieleades)
- Added MSRV checks to CI (by @danieleades)
- Documentation improvements (by @IsaacCloos).
- Documentation improvements (by @jondot).
- Made a different interface for
table_to_html
. - Made a list of changes to
tabled
interface. - Made a list of changes to
papergrid
interface. - Made a list of changes to
json_to_table
interface. - Comparison benchmarks were moved to the
master
branch.
- Fixed
Tabled
macros path issue (by @zjp-CN). - Fixed header issue in
tabled_to_html
(by @MRoci). - Fixed
Rotate::Left/Right
issue. - Fixed a few issues in
json_to_table
. - Fixed
Tabled
derive macro issue withskip
+order
usage. - Fixed
Width::wrap().keep_words()
issue. - Fixed a few clippy warnings (by @danieleades)
- Fixed typos (by Elric Milon).
- Fixed typos (by @fn-bruce)
- Fixed typos (by @fa993)
- Added missing linence files by @michel-slm
- Added
Shadow
configuration to create a margin which would look like a 'shadow'. - Added
table_to_html
crate to build anHTML
from aTable
. - Added default list of colors to
Color
such asColor::RED
,Color::BLUE
etc. - Added a new style
Style::sharp
by @wfxr.
- Bumped
ansi-str
in hope it being more effective.
- docs.rs build issue.
- Macros
row!
andcol!
by @IsaacCloos. - Added
Panel::vertical
to create a vertically spanned panels. - Added
Span::row
to create vertically spanned cells. - Added
Merge
to combine cells with the same content together viaSpan
. - Added
ByColumnName
locator to target columns via name and use it asObject
. - Added
VerticalLine
to set custom vertical lines. - Added
Height
structure to control table/cell height. - Added
BorderChar
to set a char by an arbitrary offset on a split horizonta/vertical lines. - Added support for
fmt::*
settings when called withformat
/println
. - Created
json_to_table
crate to convert json into table. papergrid
has got a few new functions.
papergrid
was restructured to be more generic in regard of underlying data types.Table::with
function now doesn't consume the table but called by reference&mut
.- impl
TableOption
forAlignment
. - impl
TableOption
forPadding
. - impl
CellOption
forString
. Wrap
logic was changed specifically withcolor
feature.Wrap
now recognizes hyperlinks (by @Dan Davison).Tabled
trait now returnsstd::borrow::Cow
instead ofString
.
- Fixed issues in
Width::wrap
logic. (one found by @Dan Davison).
- Created
#[tabled(order = 2)]
attribute to support reordering of fields. - Created
#[tabled(rename_all = "UPPERCASE")]
attribute to rename columns. - Created
#[tabled(display_width("some_func", args))]
attribute to being able to call functions with&self
argument. - Created
derive
feature to hideTable
macro behind it. - Created
Object::intersect
method. - Created
Object::inverse
method. - Created
width::Percent
to set width not in absolute values. - Created
PaddingColor
to colorizePadding
. - Created
MarginColor
to colorizeMargin
. - Added
Priority
strategy forWidth
. - Added
Style::correct_spans
functions to correct borders when used with spans.. - Added
HighlightColored
a version ofHighlight
which supports coloring. - Added
ModifyObject
trait to be likeModify::new
. - Added
Color
,BorderColored
andRawStyleColored
to colorize borders more effectively. - Added
Style::lines
setter so you it's possible to override not only header.
- Performance was improved overall.
- Removed a trailing
\n
fromfmt::Display
output. - Changed default horizontal alignment from
Center
toLeft
. (generally because it's more effitient in basic case) - Changed a definition of
CellChange
trait. - Changed
Modify
; it must be more effitient when used withoutObject
methods. - Changed public methods of
Builder
to use&mut self
intestead ofself
. - Changed logic of
Wrap::keep_words
. - Changed logic of
Truncate::suffix
. - Removed
Style::header_*
methods. - Renamed
MaxWidth
toWidth
. - Renamed
CustomStyle
toStyle
. - Renamed
StyleConfig
toRawStyle
. - Renamed
Style::*_off
methods toStyle::off_*
.
- Fixed a list of issues with coloring
- Fixed
Style
usage, some methods were not influenceTable
in some cases. - Fixed
\t
handling inWidth
functions. - Improved documentation.
- Refactorings.
- Created a tabled logo which is used on docs.rs.
- Added a
Justify
type which sets all columns to the same width. Table::builder
method which can be used to modify the default layout of table built fromTabled
.- Added
IndexBuilder
which can be used to transpose the table. - Added support for
Border
coloring. - Added
Style::frame
function which returns border. - Added
Columns::first
,Columns::last
functions. Sub
,Add
implementations forFirstRow
andLastRow
.- Added
Style::rounded
style.
- Default height set to 0.
- Renamed
TopBorderText
toBorderText
. - Removed
object
module from public export. - Deprecate
object::Full
in regard ofobject::Segment::all()
. - Improved documentation.
- Refactorings.
- Fix
Style
rendering issues. - Fix rendering when
Panel
andSpan
s are used. - Fix
Style
rendering of single row and single column tables.
- Fix
MinStyle
logic when used withSpan
. - Fix
MinStyle
,MaxStyle
logic when used with zeroSpan
table.
- Added
MinWidth
type, which changes cell widths in case it's necessary. MinWidth
andMaxWidth
can be used in combination in order to set a table width.- Added
Span
support. It cab be used to set a column span. - Added
Extract
type by @IsaacCloos. It can be used to extract a segment from a table. - Added an option to set padding character by @kozmod.
Margin
by @kozmod. Can be used to set a indent of the whole table.- Added a support for custom target in
Highlight
. Border
can be used directly to set a cell border.- A list of format settings:
TrimStrategy
,AlignmentStrategy
. \t
processing.- Added a list of examples.
#[field]
#[header]
inTabled
macro was renamed to#[tabled]
.- A default behaviour of alignment was changed.
Indent
renamed toPadding
by @kozmod.- A deprecated style constants were removed.
object
module was removed from module prelude.Format
functions were refactored. So the interface was changed.Alignment::center_horizontal
was renamed toAlignment::center
.
- Fix
Style
rendering issues. - Fix
Panel
rendering issues. - Fix
Span
rendering issues.
CustomStyle
type which now handles modifications of styles.TopBorderText
type which can be used to write a text on a bottom border.Wrap::keep_words
oprtion in order to not split words in a middle while doing a wrap.- Add more default styles
Style::dots()
,Style::re_structured_text()
,Style::extended()
MaxWidth
interface.- Constants in
style
module now marked deprecated in regard of const functions as more ergonomic choice.
- Fix rendering of single column table with full style (with horizontal split lines)
Builder
structure for dynamic creation of table
- It turns out that in version [0.4.0]
tabled_derive
was improperly bumped version. So it broke version [0.3]. To fix it it was necessary to yank versions [0.4.0] and [0.4.1] and yank tabled_derive [0.1.9]. It was pointed out by @Disasm.
Style
constants likeStyle::ASCII
,Style::PSEUDO
,Highlight
modificator which does highlight of any combination of cellsTableIteratorExt
trait by @24secondsConcat
modificator by @senk8- A
Table::shape
method which returns table's size
Tabled
trait now requires aLENGTH
constant.Style
functions were deprecated.- Allow border changes for any cell.
- Fix
fmt::Display
requirements on hidden fields in inline mode - README.md fix by @panarch
- Refactorings
ExpandedDisplay
a different view of data structures. It eases viewing structures with a lot a fields. Proposed by @sd2kMaxWidth::wrapping
a wrapping mechanism. Setting it will make text wrap to next line after reaching limit.
MaxWidth
interface changed in regard to supportwrapping
. Now oldMaxWidth
logic can be called byMaxWidth::truncating
.
- Fix an issue that setting
Alignment
was changingIndent
settings.
Rotate
option for grid to rotate grid over 90 degrees.FormatWithIndex
modifier for cellsFormatFrom
modifier for cells
- Refactoring in
tabled_derive
- Improve documentation by @CGMossa
- Add
Header/Footer
option for grid. - Add path (
::
) support indisplay_with
attribute. - Add
Tabled
implementation for constant arrays. - Add blank implementation of
TableOption
for&TableOption
- Add
MaxWidth
option for cells - Add
#[header(inline)]
attribute to inline internal data structures which implementTabled
trait - Add blank
Tabled
implementation for String - Add
#[header(inline)]
example
- Use
ansi-cut
instead ofconsole
to truncate string - Switch to
github CI
instead oftravis.ci
because free credit limit was reached
- A sublte refactoring in
tabled_derive
- Add
Table
type instead oftable!
macros - Consider lambdas Fn(&str) -> String as format options
- Add basic usage example
- Removed
table!
macros.
- Improved performance in papergrid; Now it makes 100 allocs on basic example where previously 400!
- Add a vertical indent support in
Alignment
setting - Add
Indent
setting for a grid - Add a support for an attribute
#[field(display_with = "function_name")]
for custom display of a struct fields
Alignment
interface
- Spelling and grammara mistakes #10 in README.md. Reported by @atcol
- Panic on emojies #9. Reported by @nicoulaj
- Add a
Disable
setting for removing rows/column out of the grid Object
combination viaand()
,not()
methods for targeting more thoroughly- Modification of default
Style
s - Add
#[header(hidden)]
attribute to hide variants and fields