Closed
Description
Feature gate: #![feature(const_socketaddr)]
This is a tracking issue for constifying methods of std::net::SocketAddr
, SocketAddrV4
and SocketAddrV6
.
Public API
// std::net
impl SocketAddr {
pub const fn new(ip: IpAddr, port: u16) -> Self;
pub const fn ip(&self) -> IpAddr;
pub const fn port(&self) -> u16;
pub const fn is_ipv4(&self) -> bool;
pub const fn is_ipv6(&self) -> bool;
}
impl SocketAddrV4 {
pub const fn new(ip: Ipv4Addr, port: u16) -> Self;
pub const fn ip(&self) -> IpAddr;
pub const fn port(&self) -> u16;
}
impl SocketAddrV6 {
pub const fn new(ip: Ipv6Addr, port: u16, flowinfo: u32, scope_id: u32) -> Self;
pub const fn ip(&self) -> IpAddr;
pub const fn port(&self) -> u16;
pub const fn flowinfo(&self) -> u32;
pub const fn scope_id(&self) -> u32;
}
Steps / History
- Implementation: Constify methods of
std::net::SocketAddr
,SocketAddrV4
andSocketAddrV6
#82487 - Final commenting period (FCP)
- Stabilization PR
Unresolved Questions
The methods Resolved by #78802new
on all of the address could potentially also be made const, however there are two complications: getting the inner C representation of an IP address, and adding trailing zero bytes on windows.
Metadata
Metadata
Assignees
Labels
Area: Constant evaluation, covers all const contexts (static, const fn, ...)Category: An issue tracking the progress of sth. like the implementation of an RFCRelevant to the library API team, which will review and decide on the PR/issue.This issue / PR is in PFCP or FCP with a disposition to merge it.The final comment period is finished for this PR / Issue.