Skip to content

Tracking Issue for simple_fmt #105054

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?

Activity

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-api[DEPRECATED; DO NOT USE]

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions