Rollup merge of #57106 - matthiaskrgr:trim_must_use, r=sfackler
Mark str::trim.* functions as #[must_use]. The functions return a reference to a new object and do not modify in-place as the following code shows: ```` let s = String::from(" hello "); s.trim(); assert_eq!(s, " hello "); ```` The new reference should be bound to a variable as now indicated by #[must_use].
This commit is contained in:
commit
7ebb0a8c8e
1 changed files with 12 additions and 0 deletions
|
@ -3489,6 +3489,8 @@ impl str {
|
|||
///
|
||||
/// assert_eq!("Hello\tworld", s.trim());
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn trim(&self) -> &str {
|
||||
self.trim_matches(|c: char| c.is_whitespace())
|
||||
|
@ -3524,6 +3526,8 @@ impl str {
|
|||
/// let s = " עברית ";
|
||||
/// assert!(Some('ע') == s.trim_start().chars().next());
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a new slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "trim_direction", since = "1.30.0")]
|
||||
pub fn trim_start(&self) -> &str {
|
||||
self.trim_start_matches(|c: char| c.is_whitespace())
|
||||
|
@ -3559,6 +3563,8 @@ impl str {
|
|||
/// let s = " עברית ";
|
||||
/// assert!(Some('ת') == s.trim_end().chars().rev().next());
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a new slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "trim_direction", since = "1.30.0")]
|
||||
pub fn trim_end(&self) -> &str {
|
||||
self.trim_end_matches(|c: char| c.is_whitespace())
|
||||
|
@ -3661,6 +3667,8 @@ impl str {
|
|||
/// ```
|
||||
/// assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a new slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn trim_matches<'a, P: Pattern<'a>>(&'a self, pat: P) -> &'a str
|
||||
where P::Searcher: DoubleEndedSearcher<'a>
|
||||
|
@ -3706,6 +3714,8 @@ impl str {
|
|||
/// let x: &[_] = &['1', '2'];
|
||||
/// assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a new slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "trim_direction", since = "1.30.0")]
|
||||
pub fn trim_start_matches<'a, P: Pattern<'a>>(&'a self, pat: P) -> &'a str {
|
||||
let mut i = self.len();
|
||||
|
@ -3749,6 +3759,8 @@ impl str {
|
|||
/// ```
|
||||
/// assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
|
||||
/// ```
|
||||
#[must_use = "this returns the trimmed string as a new slice, \
|
||||
without modifying the original"]
|
||||
#[stable(feature = "trim_direction", since = "1.30.0")]
|
||||
pub fn trim_end_matches<'a, P: Pattern<'a>>(&'a self, pat: P) -> &'a str
|
||||
where P::Searcher: ReverseSearcher<'a>
|
||||
|
|
Loading…
Reference in a new issue