Skip to content

Regression: shared_ufmt removed and no way to format into SharedStr without heap allocation #19

@chabapok

Description

@chabapok

Hi,

I’m migrating from flexstr 0.9.2 to 0.11.0 and noticed a couple of regressions related to formatting and inline storage size.

  1. Removal of shared_ufmt/local_ufmt

In 0.9.2 there was a method shared_ufmt, which (as I understood and relied on) allowed formatting into SharedStr without heap allocation, as long as the resulting string fit into the inline buffer.

In 0.11.0, shared_ufmt no longer exists, and I can’t find an alternative way to format directly into SharedStr while avoiding heap allocation for short strings.

Question:
What is the recommended way in 0.11.0 to format into SharedStr without using the heap, when the formatted string is short enough to fit inline?

  1. Inline string size is no longer configurable

In older versions it was possible to control the inline buffer size by defining a custom type, for example:

type BigInlineStr = FlexStr<64, /* other params */>;

This was very useful for performance-critical code where stack-only storage is important.

In 0.11.0, the inline size appears to be hardcoded inside the library, and users can no longer choose a custom inline capacity.

Question:
Is this an intentional design decision?
If so, what is the recommended approach for users who need a larger inline buffer and want to avoid heap allocations?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions