Skip to content

Tracking Issue for const_vec_string_slice #129041

Open
@GrigorenkoPV

Description

@GrigorenkoPV

Feature gate: #![feature(const_vec_string_slice)]

This is a tracking issue for making a bunch of String and Vec methods const.

Public API

The following methods are now const:

impl String {
    pub const fn into_bytes(self) -> Vec<u8>;
    pub const fn as_str(&self) -> &str;
    pub const fn capacity(&self) -> usize;
    pub const fn as_bytes(&self) -> &[u8];
    pub const fn len(&self) -> usize;
    pub const fn is_empty(&self) -> bool;
}

impl Vec<T> {
    pub const fn capacity(&self) -> usize;
    pub const fn as_slice(&self) -> &[T];
    pub const fn as_ptr(&self) -> *const T;
    pub const fn len(&self) -> usize;
    pub const fn is_empty(&self) -> bool;
}

A few additional methods are under this feature gate but were not included in the FCP at #129041 (comment); they got FCP'd in #137319 (comment):

impl String {
    pub const fn as_mut_str(&mut self) -> &mut str;
    pub const unsafe fn as_mut_vec(&mut self) -> &mut Vec<u8>;
}

impl Vec<T> {
    pub const fn as_mut_slice(&mut self) -> &mut [T];
    pub const fn as_mut_ptr(&mut self) -> *mut T;
}

Steps / History

Unresolved Questions

  • None yet.

@rustbot label A-str

Footnotes

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-strArea: str and StringC-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.disposition-mergeThis issue / PR is in PFCP or FCP with a disposition to merge it.finished-final-comment-periodThe final comment period is finished for this PR / Issue.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions