From d6fd5416b02cf5065c8e4143c6efac2d16190331 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Tue, 12 May 2020 23:30:55 +0800 Subject: [PATCH] Add replace function for characters --- README.md | 2 +- src/packages/string_more.rs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a8329aa3..00e5b940 100644 --- a/README.md +++ b/README.md @@ -1328,7 +1328,7 @@ The following standard methods (defined in the [`MoreStringPackage`](#packages) | `index_of` | character/sub-string to search for, start index _(optional)_ | returns the index that a certain character or sub-string occurs in the string, or -1 if not found | | `sub_string` | start index, length _(optional)_ | extracts a sub-string (to the end of the string if length is not specified) | | `crop` | start index, length _(optional)_ | retains only a portion of the string (to the end of the string if length is not specified) | -| `replace` | target sub-string, replacement string | replaces a sub-string with another | +| `replace` | target character/sub-string, replacement character/string | replaces a sub-string with another | | `trim` | _none_ | trims the string of whitespace at the beginning and end | ### Examples diff --git a/src/packages/string_more.rs b/src/packages/string_more.rs index 2badac23..697a6eb0 100644 --- a/src/packages/string_more.rs +++ b/src/packages/string_more.rs @@ -226,6 +226,36 @@ def_package!(crate:MoreStringPackage:"Additional string utilities, including str }, map, ); + reg_trinary_mut( + lib, + "replace", + |s: &mut String, find: String, sub: char| { + let new_str = s.replace(&find, &sub.to_string()); + s.clear(); + s.push_str(&new_str); + }, + map, + ); + reg_trinary_mut( + lib, + "replace", + |s: &mut String, find: char, sub: String| { + let new_str = s.replace(&find.to_string(), &sub); + s.clear(); + s.push_str(&new_str); + }, + map, + ); + reg_trinary_mut( + lib, + "replace", + |s: &mut String, find: char, sub: char| { + let new_str = s.replace(&find.to_string(), &sub.to_string()); + s.clear(); + s.push_str(&new_str); + }, + map, + ); reg_unary_mut( lib, "trim",