Skip to content

Tracking Issue for simple_fmt #105054

Open
Open
@m-ou-se

Description

@m-ou-se

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?

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

    Issue actions