Skip to content

Tracking Issue for simple_fmt #105054

Open
Open
@m-ou-se

Description

@m-ou-se
Member

Feature gate: #![feature(simple_fmt)]

This is a tracking issue for the simple_fmt method on the Display format trait.

Public API

  pub trait Display {
      fn fmt(&self, f: &mut Formatter) -> Result;
+     fn simple_fmt(&self, f: &mut Formatter) -> Result {
+         self.fmt(f)
+     }
  }

Formatting placeholders without any options, like in format_args!("{}", x), will call the simple_fmt method rather than fmt. This allows for optimized implementations for e.g. <String as Display>::simple_fmt that do not need to pull in code for padding, etc. See #104525 (comment).

Steps / History

Unresolved Questions

  • Do we want this on the other formatting traits too? Or only Display?
    Do we want to stabilize this at all, to allow crates to override simple_fmt for their own types?
    Should the method be unsafe, such that the implementation may unsafely assume that the Formatter's options are all set to default?

Activity

added
T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
A-fmtArea: `core::fmt`
on Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-fmtArea: `core::fmt`C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @m-ou-se

        Issue actions

          Tracking Issue for simple_fmt · Issue #105054 · rust-lang/rust