Skip to content

Tracking Issue for impl Display for CStr #139984

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
2 tasks
tamird opened this issue Apr 17, 2025 · 1 comment
Closed
2 tasks

Tracking Issue for impl Display for CStr #139984

tamird opened this issue Apr 17, 2025 · 1 comment
Labels
C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC S-tracking-unimplemented Status: The feature has not been implemented. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.

Comments

@tamird
Copy link
Contributor

tamird commented Apr 17, 2025

This is a tracking issue for impl Display for CStr.

Implement Display for CStr and CString. The implementation would be the same as for the ByteStr and ByteString types.

Public API

I'm abusing the API section here to include the whole implementation, as it is very simple.

impl fmt::Display for CStr {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
       fmt::Display::fmt(crate::bstr::ByteStr::from_bytes(self.to_bytes()), f)
    }
}
impl fmt::Display for CString {
    #[inline]
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        fmt::Display::fmt(self.as_c_cstr(), f)
    }
}

Steps / History

Motivation and discussion is elaborated in the ACP.

2025-02-27: ACP created by @Darksonn.
2025-04-17: ACP accepted by @BurntSushi.
2025-04-17: tracking issue created.

(Remember to update the S-tracking-* label when checking boxes.)

  • Implementation: #...
  • Final comment period (FCP)1

Since trait implementations on stable types are insta-stable, there will not be a stabilization PR for this feature

Unresolved Questions

  • None yet.

Footnotes

  1. https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html

@tamird tamird added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC S-tracking-unimplemented Status: The feature has not been implemented. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. labels Apr 17, 2025
tamird added a commit to tamird/rust that referenced this issue Apr 17, 2025
Delegate to `<ByteStr as Display>::fmt`.

Link: rust-lang/libs-team#550
Link: rust-lang#139984.
tamird added a commit to tamird/rust that referenced this issue Apr 18, 2025
Delegate to `<ByteStr as Display>::fmt`.

Link: rust-lang/libs-team#550
Link: rust-lang#139984.
tamird added a commit to tamird/rust that referenced this issue Apr 18, 2025
Delegate to `<ByteStr as Display>::fmt`.

Link: rust-lang/libs-team#550
Link: rust-lang#139984.
@tamird
Copy link
Contributor Author

tamird commented Apr 19, 2025

Closing per https://std-dev-guide.rust-lang.org/development/feature-lifecycle.html:

Changes that are instantly stable (e.g. trait implementations on stable types) do not need a tracking issue. However, such changes need extra scrutiny as there will be no chance to adjust the API during an unstable period.

The PR is #139994,

@tamird tamird closed this as completed Apr 19, 2025
tamird added a commit to tamird/rust that referenced this issue Apr 22, 2025
Delegate to `<ByteStr as Display>::fmt`.

Link: rust-lang/libs-team#550
Link: rust-lang#139984.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC S-tracking-unimplemented Status: The feature has not been implemented. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

1 participant