Skip to content

fix(deps): update rust crate comfy-table to v8 - #101

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/comfy-table-8.x
Open

fix(deps): update rust crate comfy-table to v8#101
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/comfy-table-8.x

Conversation

@renovate

@renovate renovate Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
comfy-table dependencies major 7.2.28.0.0

Release Notes

nukesor/comfy-table (comfy-table)

v8.0.0

Compare Source

Breaking Changes
  • The following types and functions have been removed:

    • TableComponent enum
    • The modifiers module and Table::apply_modifier have been removed.
    • Table::current_style_as_preset
    • Table::set_style
    • Table::style
    • Table::remove_style
    • Table::load_preset
  • The positional preset string format has been replaced with the new TableStyle, LineStyle and ContentLineStyle types.
    The old approach of having "stringified" presets was too finicky and also implicitly bound to the order of variants in the old TableComponent enum.
    It was just not a good design.

    The new design, in comparison, has a nice and (hopefully) intuitive API to define a style.
    On top of that, all functions on TableStyle are const, so custom styles can still be declared as constants:

    const MY_STYLE: TableStyle = TableStyle::new()
        .top_border(LineStyle::new('┌', '─', '┬', '┐'))
        .header_lines(ContentLineStyle::new('│', '┆', '│'))
        .header_separator(LineStyle::new('╞', '═', '╪', '╡'))
        .content_lines(ContentLineStyle::new('│', '┆', '│'))
        .bottom_border(LineStyle::new('└', '─', '┴', '┘'));

    The new API looks as follows:

    • Presets in comfy_table::presets::* are now TableStyle constants.
    • Table::load_style(style) has been added to load a preset or custom style.
    • Table::style() and Table::style_mut() to get a handle to the style used by the table.
      The mut handle can be used to change the style.
    • Instead of modifiers, there are now functions on TableStyle TableStyle::with_rounded_corners/TableStyle::with_solid_inner_borders.
    • All fields of TableStyle, LineStyle and ContentLineStyle are public:
      table.style_mut().top_border.left = Some('╭');
  • The default truncation indicator is now instead of ....
    This should make it more obvious that there's more text and consumes less visual space.

Fix
  • Various performance improvements that reduce table formatting time quite a bit:

    • ~36% for "normal" tables (The readme of the project). 17µs -> 11µs
    • ~34% for "larger" tables, which I would consider a reasonable usecase. 253µs -> 172µs
    • ~70% for very large tables, i.e. a 10x500 table. -> 20.8ms -> 6.15ms

    Most of these improvements boil down to:

    • Less string allocations.
    • Special handling when handling ASCII-only text, as grapheme handling can be skipped in those cases.
    • Moving computational heavy stuff (such as UTF-8 width calculations) out of hot loops.
  • Fixed a non-critical bug that resulted in less-than optimal layouting when UTF-8 characters were involved.

  • No longer panic when rendering a Table that contains a row with Row::max_height(0).

  • Don't print multi-width truncation indicators, if they would be longer than the column.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants