-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Implement IUtf8SpanFormattable on IPAddress and IPNetwork #84487
Conversation
Implements IUtf8SpanFormattable explicitly on both IPAddress and IPNetwork. For IPNetwork, we just use Utf8.TryWrite just as the existing ISpanFormattable uses MemoryExtensions.TryWrite. For IPAddress, the existing formatting code is made to work generically for either byte or char. In the process, I removed the unsafe pointer-based code from the formatting logic while also making it faster.
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
Tagging subscribers to this area: @dotnet/ncl Issue DetailsImplements IUtf8SpanFormattable explicitly on both IPAddress and IPNetwork. For IPNetwork, we just use Utf8.TryWrite just as the existing ISpanFormattable uses MemoryExtensions.TryWrite. For IPAddress, the existing formatting code is made to work generically for either byte or char. In the process, I removed the unsafe pointer-based code from the formatting logic while also making it faster.
This also fixes #84482. Contributes to #81500
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Implements IUtf8SpanFormattable explicitly on both IPAddress and IPNetwork. For IPNetwork, we just use Utf8.TryWrite just as the existing ISpanFormattable uses MemoryExtensions.TryWrite. For IPAddress, the existing formatting code is made to work generically for either byte or char.
In the process, I removed the unsafe pointer-based code from the formatting logic while also making it faster.
This also fixes #84482.
Contributes to #81500