Struct java_string::JavaString
source · pub struct JavaString { /* private fields */ }
Implementations§
source§impl JavaString
impl JavaString
sourcepub fn from_modified_utf8(bytes: Vec<u8>) -> Result<JavaString, Utf8Error>
pub fn from_modified_utf8(bytes: Vec<u8>) -> Result<JavaString, Utf8Error>
Converts from Java’s modified UTF-8 format to a JavaString
.
sourcepub fn into_modified_utf8(self) -> Vec<u8>
pub fn into_modified_utf8(self) -> Vec<u8>
Converts to Java’s modified UTF-8 format.
source§impl JavaString
impl JavaString
pub const fn new() -> JavaString
pub fn with_capacity(capacity: usize) -> JavaString
sourcepub fn from_full_utf8(vec: Vec<u8>) -> Result<JavaString, FromUtf8Error>
pub fn from_full_utf8(vec: Vec<u8>) -> Result<JavaString, FromUtf8Error>
Converts vec
to a JavaString
if it is fully-valid UTF-8, i.e. UTF-8
without surrogate code points. See String::from_utf8
.
sourcepub fn from_semi_utf8(vec: Vec<u8>) -> Result<JavaString, FromUtf8Error>
pub fn from_semi_utf8(vec: Vec<u8>) -> Result<JavaString, FromUtf8Error>
Converts vec
to a JavaString
if it is semi-valid UTF-8, i.e. UTF-8
with surrogate code points.
assert_eq!(
JavaString::from_semi_utf8(b"Hello World!".to_vec()).unwrap(),
"Hello World!"
);
assert_eq!(
JavaString::from_semi_utf8(vec![0xf0, 0x9f, 0x92, 0x96]).unwrap(),
"💖"
);
assert_eq!(
JavaString::from_semi_utf8(vec![0xed, 0xa0, 0x80]).unwrap(),
JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap())
);
assert!(JavaString::from_semi_utf8(vec![0xed]).is_err());
sourcepub fn from_semi_utf8_lossy(v: &[u8]) -> Cow<'_, JavaStr>
pub fn from_semi_utf8_lossy(v: &[u8]) -> Cow<'_, JavaStr>
Converts v
to a Cow<JavaStr>
, replacing invalid semi-UTF-8 with the
replacement character �.
let sparkle_heart = [0xf0, 0x9f, 0x92, 0x96];
let result = JavaString::from_semi_utf8_lossy(&sparkle_heart);
assert!(matches!(result, Cow::Borrowed(_)));
assert_eq!(result, JavaStr::from_str("💖"));
let foobar_with_error = [b'f', b'o', b'o', 0xed, b'b', b'a', b'r'];
let result = JavaString::from_semi_utf8_lossy(&foobar_with_error);
assert!(matches!(result, Cow::Owned(_)));
assert_eq!(result, JavaStr::from_str("foo�bar"));
sourcepub unsafe fn from_semi_utf8_unchecked(bytes: Vec<u8>) -> JavaString
pub unsafe fn from_semi_utf8_unchecked(bytes: Vec<u8>) -> JavaString
§Safety
The parameter must be in semi-valid UTF-8 format, that is, UTF-8 plus surrogate code points.
sourcepub fn into_bytes(self) -> Vec<u8>
pub fn into_bytes(self) -> Vec<u8>
See String::into_bytes
.
sourcepub fn as_java_str(&self) -> &JavaStr
pub fn as_java_str(&self) -> &JavaStr
See String::as_str
.
sourcepub fn as_mut_java_str(&mut self) -> &mut JavaStr
pub fn as_mut_java_str(&mut self) -> &mut JavaStr
See String::as_mut_str
.
sourcepub fn into_string(self) -> Result<String, Utf8Error>
pub fn into_string(self) -> Result<String, Utf8Error>
Tries to convert this JavaString
to a String
, returning an error if
it is not fully valid UTF-8, i.e. has no surrogate code points.
assert_eq!(
JavaString::from("Hello World!").into_string().unwrap(),
"Hello World!"
);
assert_eq!(
JavaString::from("abc\0ℝ💣").into_string().unwrap(),
"abc\0ℝ💣"
);
let string_with_error = JavaString::from("abc")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str();
assert!(string_with_error.into_string().is_err());
sourcepub unsafe fn into_string_unchecked(self) -> String
pub unsafe fn into_string_unchecked(self) -> String
§Safety
This string must be fully valid UTF-8, i.e. have no surrogate code points.
sourcepub fn push_java_str(&mut self, string: &JavaStr)
pub fn push_java_str(&mut self, string: &JavaStr)
See String::push_str
.
sourcepub fn push_str(&mut self, string: &str)
pub fn push_str(&mut self, string: &str)
See String::push_str
.
sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
See String::capacity
.
sourcepub fn reserve(&mut self, additional: usize)
pub fn reserve(&mut self, additional: usize)
See String::reserve
.
sourcepub fn reserve_exact(&mut self, additional: usize)
pub fn reserve_exact(&mut self, additional: usize)
sourcepub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
See String::try_reserve
.
sourcepub fn try_reserve_exact(
&mut self,
additional: usize,
) -> Result<(), TryReserveError>
pub fn try_reserve_exact( &mut self, additional: usize, ) -> Result<(), TryReserveError>
sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
sourcepub fn shrink_to(&mut self, min_capacity: usize)
pub fn shrink_to(&mut self, min_capacity: usize)
See String::shrink_to
.
sourcepub fn push(&mut self, ch: char)
pub fn push(&mut self, ch: char)
See String::push
.
sourcepub fn push_java(&mut self, ch: JavaCodePoint)
pub fn push_java(&mut self, ch: JavaCodePoint)
See String::push
.
sourcepub fn as_bytes(&self) -> &[u8] ⓘ
pub fn as_bytes(&self) -> &[u8] ⓘ
See String::as_bytes
.
sourcepub fn truncate(&mut self, new_len: usize)
pub fn truncate(&mut self, new_len: usize)
See String::truncate
.
sourcepub fn pop(&mut self) -> Option<JavaCodePoint>
pub fn pop(&mut self) -> Option<JavaCodePoint>
See String::pop
.
let mut str = JavaString::from("Hello World!");
assert_eq!(str.pop().unwrap(), '!');
assert_eq!(str, "Hello World");
let mut str = JavaString::from("東京");
assert_eq!(str.pop().unwrap(), '京');
assert_eq!(str, "東");
assert!(JavaString::new().pop().is_none());
sourcepub fn remove(&mut self, idx: usize) -> JavaCodePoint
pub fn remove(&mut self, idx: usize) -> JavaCodePoint
See String::remove
.
let mut str = JavaString::from("Hello World!");
assert_eq!(str.remove(5), ' ');
assert_eq!(str, "HelloWorld!");
let mut str = JavaString::from("Hello 🦀 World!");
assert_eq!(str.remove(6), '🦀');
assert_eq!(str, "Hello World!");
// Should panic
JavaString::new().remove(0);
// Should panic
JavaString::from("🦀").remove(1);
sourcepub fn retain<F>(&mut self, f: F)
pub fn retain<F>(&mut self, f: F)
See String::retain
.
let mut str = JavaString::from("Hello 🦀 World!");
str.retain(|ch| !ch.is_ascii_uppercase());
assert_eq!(str, "ello 🦀 orld!");
str.retain(JavaCodePoint::is_ascii);
assert_eq!(str, "ello orld!");
sourcepub fn insert(&mut self, idx: usize, ch: char)
pub fn insert(&mut self, idx: usize, ch: char)
See String::insert
.
let mut s = JavaString::from("foo");
s.insert(3, 'a');
s.insert(4, 'r');
s.insert(3, 'b');
assert_eq!(s, "foobar");
sourcepub fn insert_java(&mut self, idx: usize, ch: JavaCodePoint)
pub fn insert_java(&mut self, idx: usize, ch: JavaCodePoint)
See String::insert
.
sourcepub fn insert_str(&mut self, idx: usize, string: &str)
pub fn insert_str(&mut self, idx: usize, string: &str)
See String::insert_str
.
let mut s = JavaString::from("bar");
s.insert_str(0, "foo");
assert_eq!(s, "foobar");
sourcepub fn insert_java_str(&mut self, idx: usize, string: &JavaStr)
pub fn insert_java_str(&mut self, idx: usize, string: &JavaStr)
See String::insert_str
.
sourcepub unsafe fn as_mut_vec(&mut self) -> &mut Vec<u8>
pub unsafe fn as_mut_vec(&mut self) -> &mut Vec<u8>
See String::as_mut_vec
.
§Safety
The returned Vec
must not have invalid UTF-8 written to it, besides
surrogate pairs.
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
See String::len
.
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
See String::is_empty
.
sourcepub fn split_off(&mut self, at: usize) -> JavaString
pub fn split_off(&mut self, at: usize) -> JavaString
See String::split_off
.
let mut hello = JavaString::from("Hello World!");
let world = hello.split_off(6);
assert_eq!(hello, "Hello ");
assert_eq!(world, "World!");
let mut s = JavaString::from("🦀");
// Should panic
let _ = s.split_off(1);
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
See String::clear
.
sourcepub fn drain<R>(&mut self, range: R) -> Drain<'_> ⓘwhere
R: RangeBounds<usize>,
pub fn drain<R>(&mut self, range: R) -> Drain<'_> ⓘwhere
R: RangeBounds<usize>,
See String::drain
.
let mut s = JavaString::from("α is alpha, β is beta");
let beta_offset = s.find('β').unwrap_or(s.len());
// Remove the range up until the β from the string
let t: JavaString = s.drain(..beta_offset).collect();
assert_eq!(t, "α is alpha, ");
assert_eq!(s, "β is beta");
// A full range clears the string, like `clear()` does
s.drain(..);
assert_eq!(s, "");
sourcepub fn replace_range<R>(&mut self, range: R, replace_with: &str)where
R: RangeBounds<usize>,
pub fn replace_range<R>(&mut self, range: R, replace_with: &str)where
R: RangeBounds<usize>,
let mut s = JavaString::from("α is alpha, β is beta");
let beta_offset = s.find('β').unwrap_or(s.len());
// Replace the range up until the β from the string
s.replace_range(..beta_offset, "Α is capital alpha; ");
assert_eq!(s, "Α is capital alpha; β is beta");
let mut s = JavaString::from("α is alpha, β is beta");
// Should panic
s.replace_range(..1, "Α is capital alpha; ");
sourcepub fn replace_range_java<R>(&mut self, range: R, replace_with: &JavaStr)where
R: RangeBounds<usize>,
pub fn replace_range_java<R>(&mut self, range: R, replace_with: &JavaStr)where
R: RangeBounds<usize>,
sourcepub fn into_boxed_str(self) -> Box<JavaStr>
pub fn into_boxed_str(self) -> Box<JavaStr>
sourcepub fn leak<'a>(self) -> &'a mut JavaStr
pub fn leak<'a>(self) -> &'a mut JavaStr
See String::leak
.
Methods from Deref<Target = JavaStr>§
sourcepub fn to_modified_utf8(&self) -> Cow<'_, [u8]>
pub fn to_modified_utf8(&self) -> Cow<'_, [u8]>
Converts to Java’s modified UTF-8 format.
let result = JavaStr::from_str("Hello World!").to_modified_utf8();
assert!(matches!(result, Cow::Borrowed(_)));
assert_eq!(result, &b"Hello World!"[..]);
let mut str = JavaString::from("abc\0ℝ💣");
str.push_java(JavaCodePoint::from_u32(0xd800).unwrap());
let result = str.to_modified_utf8();
let expected = [
0x61, 0x62, 0x63, 0xc0, 0x80, 0xe2, 0x84, 0x9d, 0xed, 0xa0, 0xbd, 0xed, 0xb2, 0xa3, 0xed,
0xa0, 0x80,
];
assert!(matches!(result, Cow::Owned(_)));
assert_eq!(result, &expected[..]);
sourcepub fn as_bytes(&self) -> &[u8] ⓘ
pub fn as_bytes(&self) -> &[u8] ⓘ
See str::as_bytes
.
sourcepub unsafe fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
See str::as_bytes_mut
.
§Safety
The returned slice must not have invalid UTF-8 written to it, besides surrogate pairs.
sourcepub fn as_mut_ptr(&mut self) -> *mut u8
pub fn as_mut_ptr(&mut self) -> *mut u8
See str::as_mut_ptr
.
sourcepub fn as_ptr(&self) -> *const u8
pub fn as_ptr(&self) -> *const u8
See str::as_ptr
.
sourcepub fn as_str(&self) -> Result<&str, Utf8Error>
pub fn as_str(&self) -> Result<&str, Utf8Error>
Tries to convert this &JavaStr
to a &str
, returning an error if
it is not fully valid UTF-8, i.e. has no surrogate code points.
sourcepub unsafe fn as_str_unchecked(&self) -> &str
pub unsafe fn as_str_unchecked(&self) -> &str
§Safety
This string must be fully valid UTF-8, i.e. have no surrogate code points.
sourcepub fn as_str_lossy(&self) -> Cow<'_, str>
pub fn as_str_lossy(&self) -> Cow<'_, str>
Converts this &JavaStr
to a Cow<str>
, replacing surrogate code
points with the replacement character �.
let s = JavaStr::from_str("Hello 🦀 World!");
let result = s.as_str_lossy();
assert!(matches!(result, Cow::Borrowed(_)));
assert_eq!(result, "Hello 🦀 World!");
let s = JavaString::from("Hello ")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str()
+ JavaStr::from_str(" World!");
let result = s.as_str_lossy();
assert!(matches!(result, Cow::Owned(_)));
assert_eq!(result, "Hello � World!");
sourcepub fn bytes(&self) -> Bytes<'_> ⓘ
pub fn bytes(&self) -> Bytes<'_> ⓘ
See str::bytes
.
sourcepub fn char_indices(&self) -> CharIndices<'_> ⓘ
pub fn char_indices(&self) -> CharIndices<'_> ⓘ
See str::char_indices
.
sourcepub fn chars(&self) -> Chars<'_> ⓘ
pub fn chars(&self) -> Chars<'_> ⓘ
See str::chars
.
sourcepub fn contains<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
pub fn contains<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
See str::contains
.
let bananas = JavaStr::from_str("bananas");
assert!(bananas.contains("nana"));
assert!(!bananas.contains("apples"));
sourcepub fn ends_with<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
pub fn ends_with<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
See str::ends_with
.
let bananas = JavaStr::from_str("bananas");
assert!(bananas.ends_with("anas"));
assert!(!bananas.ends_with("nana"));
sourcepub fn eq_ignore_ascii_case(&self, other: &str) -> bool
pub fn eq_ignore_ascii_case(&self, other: &str) -> bool
sourcepub fn eq_java_ignore_ascii_case(&self, other: &JavaStr) -> bool
pub fn eq_java_ignore_ascii_case(&self, other: &JavaStr) -> bool
sourcepub fn escape_debug(&self) -> EscapeDebug<'_> ⓘ
pub fn escape_debug(&self) -> EscapeDebug<'_> ⓘ
See str::escape_debug
.
assert_eq!(
JavaStr::from_str("❤\n!").escape_debug().to_string(),
"❤\\n!"
);
sourcepub fn escape_default(&self) -> EscapeDefault<'_> ⓘ
pub fn escape_default(&self) -> EscapeDefault<'_> ⓘ
See str::escape_default
.
assert_eq!(
JavaStr::from_str("❤\n!").escape_default().to_string(),
"\\u{2764}\\n!"
);
sourcepub fn escape_unicode(&self) -> EscapeUnicode<'_> ⓘ
pub fn escape_unicode(&self) -> EscapeUnicode<'_> ⓘ
See str::escape_unicode
.
assert_eq!(
JavaStr::from_str("❤\n!").escape_unicode().to_string(),
"\\u{2764}\\u{a}\\u{21}"
);
sourcepub fn find<P>(&self, pat: P) -> Option<usize>where
P: JavaStrPattern,
pub fn find<P>(&self, pat: P) -> Option<usize>where
P: JavaStrPattern,
See str::find
.
let s = "Löwe 老虎 Léopard Gepardi";
assert_eq!(s.find('L'), Some(0));
assert_eq!(s.find('é'), Some(14));
assert_eq!(s.find("par"), Some(17));
let x: &[_] = &['1', '2'];
assert_eq!(s.find(x), None);
sourcepub fn get<I>(&self, i: I) -> Option<&JavaStr>where
I: JavaStrSliceIndex,
pub fn get<I>(&self, i: I) -> Option<&JavaStr>where
I: JavaStrSliceIndex,
See str::get
.
let v = JavaString::from("🗻∈🌏");
assert_eq!(Some(JavaStr::from_str("🗻")), v.get(0..4));
// indices not on UTF-8 sequence boundaries
assert!(v.get(1..).is_none());
assert!(v.get(..8).is_none());
// out of bounds
assert!(v.get(..42).is_none());
sourcepub fn get_mut<I>(&mut self, i: I) -> Option<&mut JavaStr>where
I: JavaStrSliceIndex,
pub fn get_mut<I>(&mut self, i: I) -> Option<&mut JavaStr>where
I: JavaStrSliceIndex,
See str::get_mut
.
sourcepub unsafe fn get_unchecked<I>(&self, i: I) -> &JavaStrwhere
I: JavaStrSliceIndex,
pub unsafe fn get_unchecked<I>(&self, i: I) -> &JavaStrwhere
I: JavaStrSliceIndex,
See str::get_unchecked
.
§Safety
- The starting index must not exceed the ending index
- Indexes must be within bounds of the original slice
- Indexes must lie on UTF-8 sequence boundaries
sourcepub unsafe fn get_unchecked_mut<I>(&mut self, i: I) -> &mut JavaStrwhere
I: JavaStrSliceIndex,
pub unsafe fn get_unchecked_mut<I>(&mut self, i: I) -> &mut JavaStrwhere
I: JavaStrSliceIndex,
§Safety
- The starting index must not exceed the ending index
- Indexes must be within bounds of the original slice
- Indexes must lie on UTF-8 sequence boundaries
sourcepub fn is_ascii(&self) -> bool
pub fn is_ascii(&self) -> bool
See str::is_ascii
.
sourcepub fn is_char_boundary(&self, index: usize) -> bool
pub fn is_char_boundary(&self, index: usize) -> bool
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
See str::is_empty
.
sourcepub fn lines(&self) -> Lines<'_> ⓘ
pub fn lines(&self) -> Lines<'_> ⓘ
See str::lines
.
sourcepub fn make_ascii_lowercase(&mut self)
pub fn make_ascii_lowercase(&mut self)
sourcepub fn make_ascii_uppercase(&mut self)
pub fn make_ascii_uppercase(&mut self)
sourcepub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P> ⓘwhere
P: JavaStrPattern,
See str::match_indices
.
let v: Vec<_> = JavaStr::from_str("abcXXXabcYYYabc")
.match_indices("abc")
.collect();
assert_eq!(
v,
[
(0, JavaStr::from_str("abc")),
(6, JavaStr::from_str("abc")),
(12, JavaStr::from_str("abc"))
]
);
let v: Vec<_> = JavaStr::from_str("1abcabc2").match_indices("abc").collect();
assert_eq!(
v,
[(1, JavaStr::from_str("abc")), (4, JavaStr::from_str("abc"))]
);
let v: Vec<_> = JavaStr::from_str("ababa").match_indices("aba").collect();
assert_eq!(v, [(0, JavaStr::from_str("aba"))]); // only the first `aba`
sourcepub fn matches<P>(&self, pat: P) -> Matches<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn matches<P>(&self, pat: P) -> Matches<'_, P> ⓘwhere
P: JavaStrPattern,
See str::matches
.
let v: Vec<&JavaStr> = JavaStr::from_str("abcXXXabcYYYabc")
.matches("abc")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("abc"),
JavaStr::from_str("abc"),
JavaStr::from_str("abc")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("1abc2abc3")
.matches(JavaCodePoint::is_numeric)
.collect();
assert_eq!(
v,
[
JavaStr::from_str("1"),
JavaStr::from_str("2"),
JavaStr::from_str("3")
]
);
sourcepub fn parse<F>(&self) -> Result<F, ParseError<<F as FromStr>::Err>>where
F: FromStr,
pub fn parse<F>(&self) -> Result<F, ParseError<<F as FromStr>::Err>>where
F: FromStr,
See str::parse
.
sourcepub fn repeat(&self, n: usize) -> JavaString
pub fn repeat(&self, n: usize) -> JavaString
See str::repeat
.
sourcepub fn replace<P>(&self, from: P, to: &str) -> JavaStringwhere
P: JavaStrPattern,
pub fn replace<P>(&self, from: P, to: &str) -> JavaStringwhere
P: JavaStrPattern,
See str::replace
.
let s = JavaStr::from_str("this is old");
assert_eq!("this is new", s.replace("old", "new"));
assert_eq!("than an old", s.replace("is", "an"));
sourcepub fn replace_java<P>(&self, from: P, to: &JavaStr) -> JavaStringwhere
P: JavaStrPattern,
pub fn replace_java<P>(&self, from: P, to: &JavaStr) -> JavaStringwhere
P: JavaStrPattern,
See str::replace
.
sourcepub fn replacen<P>(&self, from: P, to: &str, count: usize) -> JavaStringwhere
P: JavaStrPattern,
pub fn replacen<P>(&self, from: P, to: &str, count: usize) -> JavaStringwhere
P: JavaStrPattern,
See str::replacen
.
let s = JavaStr::from_str("foo foo 123 foo");
assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
assert_eq!(
"foo foo new23 foo",
s.replacen(JavaCodePoint::is_numeric, "new", 1)
);
sourcepub fn replacen_java<P>(
&self,
from: P,
to: &JavaStr,
count: usize,
) -> JavaStringwhere
P: JavaStrPattern,
pub fn replacen_java<P>(
&self,
from: P,
to: &JavaStr,
count: usize,
) -> JavaStringwhere
P: JavaStrPattern,
See str::replacen
.
sourcepub fn rfind<P>(&self, pat: P) -> Option<usize>where
P: JavaStrPattern,
pub fn rfind<P>(&self, pat: P) -> Option<usize>where
P: JavaStrPattern,
See str::rfind
.
let s = JavaStr::from_str("Löwe 老虎 Léopard Gepardi");
assert_eq!(s.rfind('L'), Some(13));
assert_eq!(s.rfind('é'), Some(14));
assert_eq!(s.rfind("par"), Some(24));
let x: &[_] = &['1', '2'];
assert_eq!(s.rfind(x), None);
sourcepub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P> ⓘwhere
P: JavaStrPattern,
See str::rmatch_indices
.
let v: Vec<_> = JavaStr::from_str("abcXXXabcYYYabc")
.rmatch_indices("abc")
.collect();
assert_eq!(
v,
[
(12, JavaStr::from_str("abc")),
(6, JavaStr::from_str("abc")),
(0, JavaStr::from_str("abc"))
]
);
let v: Vec<_> = JavaStr::from_str("1abcabc2")
.rmatch_indices("abc")
.collect();
assert_eq!(
v,
[(4, JavaStr::from_str("abc")), (1, JavaStr::from_str("abc"))]
);
let v: Vec<_> = JavaStr::from_str("ababa").rmatch_indices("aba").collect();
assert_eq!(v, [(2, JavaStr::from_str("aba"))]); // only the last `aba`
sourcepub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P> ⓘwhere
P: JavaStrPattern,
See str::rmatches
.
let v: Vec<&JavaStr> = JavaStr::from_str("abcXXXabcYYYabc")
.rmatches("abc")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("abc"),
JavaStr::from_str("abc"),
JavaStr::from_str("abc")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("1abc2abc3")
.rmatches(JavaCodePoint::is_numeric)
.collect();
assert_eq!(
v,
[
JavaStr::from_str("3"),
JavaStr::from_str("2"),
JavaStr::from_str("1")
]
);
sourcepub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P> ⓘwhere
P: JavaStrPattern,
See str::rsplit
.
let v: Vec<&JavaStr> = JavaStr::from_str("Mary had a little lamb")
.rsplit(' ')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lamb"),
JavaStr::from_str("little"),
JavaStr::from_str("a"),
JavaStr::from_str("had"),
JavaStr::from_str("Mary")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("").rsplit('X').collect();
assert_eq!(v, [JavaStr::from_str("")]);
let v: Vec<&JavaStr> = JavaStr::from_str("lionXXtigerXleopard")
.rsplit('X')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("leopard"),
JavaStr::from_str("tiger"),
JavaStr::from_str(""),
JavaStr::from_str("lion")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lion::tiger::leopard")
.rsplit("::")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("leopard"),
JavaStr::from_str("tiger"),
JavaStr::from_str("lion")
]
);
sourcepub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&JavaStr, &JavaStr)>where
P: JavaStrPattern,
pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&JavaStr, &JavaStr)>where
P: JavaStrPattern,
See str::rsplit_once
.
assert_eq!(JavaStr::from_str("cfg").rsplit_once('='), None);
assert_eq!(
JavaStr::from_str("cfg=foo").rsplit_once('='),
Some((JavaStr::from_str("cfg"), JavaStr::from_str("foo")))
);
assert_eq!(
JavaStr::from_str("cfg=foo=bar").rsplit_once('='),
Some((JavaStr::from_str("cfg=foo"), JavaStr::from_str("bar")))
);
sourcepub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P> ⓘwhere
P: JavaStrPattern,
let v: Vec<&JavaStr> = JavaStr::from_str("A.B.").rsplit_terminator('.').collect();
assert_eq!(v, [JavaStr::from_str("B"), JavaStr::from_str("A")]);
let v: Vec<&JavaStr> = JavaStr::from_str("A..B..").rsplit_terminator(".").collect();
assert_eq!(
v,
[
JavaStr::from_str(""),
JavaStr::from_str("B"),
JavaStr::from_str(""),
JavaStr::from_str("A")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("A.B:C.D")
.rsplit_terminator(&['.', ':'][..])
.collect();
assert_eq!(
v,
[
JavaStr::from_str("D"),
JavaStr::from_str("C"),
JavaStr::from_str("B"),
JavaStr::from_str("A")
]
);
sourcepub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P> ⓘwhere
P: JavaStrPattern,
See str::rsplitn
.
let v: Vec<&JavaStr> = JavaStr::from_str("Mary had a little lamb")
.rsplitn(3, ' ')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lamb"),
JavaStr::from_str("little"),
JavaStr::from_str("Mary had a")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lionXXtigerXleopard")
.rsplitn(3, 'X')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("leopard"),
JavaStr::from_str("tiger"),
JavaStr::from_str("lionX")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lion::tiger::leopard")
.rsplitn(2, "::")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("leopard"),
JavaStr::from_str("lion::tiger")
]
);
sourcepub fn split<P>(&self, pat: P) -> Split<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn split<P>(&self, pat: P) -> Split<'_, P> ⓘwhere
P: JavaStrPattern,
See str::split
.
let v: Vec<&JavaStr> = JavaStr::from_str("Mary had a little lamb")
.split(' ')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("Mary"),
JavaStr::from_str("had"),
JavaStr::from_str("a"),
JavaStr::from_str("little"),
JavaStr::from_str("lamb")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("").split('X').collect();
assert_eq!(v, [JavaStr::from_str("")]);
let v: Vec<&JavaStr> = JavaStr::from_str("lionXXtigerXleopard")
.split('X')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lion"),
JavaStr::from_str(""),
JavaStr::from_str("tiger"),
JavaStr::from_str("leopard")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lion::tiger::leopard")
.split("::")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lion"),
JavaStr::from_str("tiger"),
JavaStr::from_str("leopard")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("abc1def2ghi")
.split(JavaCodePoint::is_numeric)
.collect();
assert_eq!(
v,
[
JavaStr::from_str("abc"),
JavaStr::from_str("def"),
JavaStr::from_str("ghi")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lionXtigerXleopard")
.split(JavaCodePoint::is_uppercase)
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lion"),
JavaStr::from_str("tiger"),
JavaStr::from_str("leopard")
]
);
sourcepub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_> ⓘ
pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_> ⓘ
See str::split_ascii_whitespace
.
let mut iter = JavaStr::from_str(" Mary had\ta little \n\t lamb").split_ascii_whitespace();
assert_eq!(Some(JavaStr::from_str("Mary")), iter.next());
assert_eq!(Some(JavaStr::from_str("had")), iter.next());
assert_eq!(Some(JavaStr::from_str("a")), iter.next());
assert_eq!(Some(JavaStr::from_str("little")), iter.next());
assert_eq!(Some(JavaStr::from_str("lamb")), iter.next());
assert_eq!(None, iter.next());
sourcepub fn split_at(&self, mid: usize) -> (&JavaStr, &JavaStr)
pub fn split_at(&self, mid: usize) -> (&JavaStr, &JavaStr)
See str::split_at
.
let s = JavaStr::from_str("Per Martin-Löf");
let (first, last) = s.split_at(3);
assert_eq!("Per", first);
assert_eq!(" Martin-Löf", last);
let s = JavaStr::from_str("Per Martin-Löf");
// Should panic
let _ = s.split_at(13);
sourcepub fn split_at_mut(&mut self, mid: usize) -> (&mut JavaStr, &mut JavaStr)
pub fn split_at_mut(&mut self, mid: usize) -> (&mut JavaStr, &mut JavaStr)
See str::split_at_mut
.
let mut s = JavaString::from("Per Martin-Löf");
let s = s.as_mut_java_str();
let (first, last) = s.split_at_mut(3);
assert_eq!("Per", first);
assert_eq!(" Martin-Löf", last);
let mut s = JavaString::from("Per Martin-Löf");
let s = s.as_mut_java_str();
// Should panic
let _ = s.split_at(13);
sourcepub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P> ⓘwhere
P: JavaStrPattern,
See str::split_inclusive
.
let v: Vec<&JavaStr> = JavaStr::from_str("Mary had a little lamb\nlittle lamb\nlittle lamb.\n")
.split_inclusive('\n')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("Mary had a little lamb\n"),
JavaStr::from_str("little lamb\n"),
JavaStr::from_str("little lamb.\n")
]
);
sourcepub fn split_once<P>(&self, delimiter: P) -> Option<(&JavaStr, &JavaStr)>where
P: JavaStrPattern,
pub fn split_once<P>(&self, delimiter: P) -> Option<(&JavaStr, &JavaStr)>where
P: JavaStrPattern,
See str::split_once
.
assert_eq!(JavaStr::from_str("cfg").split_once('='), None);
assert_eq!(
JavaStr::from_str("cfg=").split_once('='),
Some((JavaStr::from_str("cfg"), JavaStr::from_str("")))
);
assert_eq!(
JavaStr::from_str("cfg=foo").split_once('='),
Some((JavaStr::from_str("cfg"), JavaStr::from_str("foo")))
);
assert_eq!(
JavaStr::from_str("cfg=foo=bar").split_once('='),
Some((JavaStr::from_str("cfg"), JavaStr::from_str("foo=bar")))
);
sourcepub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P> ⓘwhere
P: JavaStrPattern,
let v: Vec<&JavaStr> = JavaStr::from_str("A.B.").split_terminator('.').collect();
assert_eq!(v, [JavaStr::from_str("A"), JavaStr::from_str("B")]);
let v: Vec<&JavaStr> = JavaStr::from_str("A..B..").split_terminator(".").collect();
assert_eq!(
v,
[
JavaStr::from_str("A"),
JavaStr::from_str(""),
JavaStr::from_str("B"),
JavaStr::from_str("")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("A.B:C.D")
.split_terminator(&['.', ':'][..])
.collect();
assert_eq!(
v,
[
JavaStr::from_str("A"),
JavaStr::from_str("B"),
JavaStr::from_str("C"),
JavaStr::from_str("D")
]
);
sourcepub fn split_whitespace(&self) -> SplitWhitespace<'_> ⓘ
pub fn split_whitespace(&self) -> SplitWhitespace<'_> ⓘ
sourcepub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P> ⓘwhere
P: JavaStrPattern,
pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P> ⓘwhere
P: JavaStrPattern,
See str::splitn
.
let v: Vec<&JavaStr> = JavaStr::from_str("Mary had a little lambda")
.splitn(3, ' ')
.collect();
assert_eq!(
v,
[
JavaStr::from_str("Mary"),
JavaStr::from_str("had"),
JavaStr::from_str("a little lambda")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("lionXXtigerXleopard")
.splitn(3, "X")
.collect();
assert_eq!(
v,
[
JavaStr::from_str("lion"),
JavaStr::from_str(""),
JavaStr::from_str("tigerXleopard")
]
);
let v: Vec<&JavaStr> = JavaStr::from_str("abcXdef").splitn(1, 'X').collect();
assert_eq!(v, [JavaStr::from_str("abcXdef")]);
let v: Vec<&JavaStr> = JavaStr::from_str("").splitn(1, 'X').collect();
assert_eq!(v, [JavaStr::from_str("")]);
sourcepub fn starts_with<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
pub fn starts_with<P>(&self, pat: P) -> boolwhere
P: JavaStrPattern,
See str::starts_with
.
let bananas = JavaStr::from_str("bananas");
assert!(bananas.starts_with("bana"));
assert!(!bananas.starts_with("nana"));
sourcepub fn strip_prefix<P>(&self, prefix: P) -> Option<&JavaStr>where
P: JavaStrPattern,
pub fn strip_prefix<P>(&self, prefix: P) -> Option<&JavaStr>where
P: JavaStrPattern,
See str::strip_prefix
.
assert_eq!(
JavaStr::from_str("foo:bar").strip_prefix("foo:"),
Some(JavaStr::from_str("bar"))
);
assert_eq!(JavaStr::from_str("foo:bar").strip_prefix("bar"), None);
assert_eq!(
JavaStr::from_str("foofoo").strip_prefix("foo"),
Some(JavaStr::from_str("foo"))
);
sourcepub fn strip_suffix<P>(&self, suffix: P) -> Option<&JavaStr>where
P: JavaStrPattern,
pub fn strip_suffix<P>(&self, suffix: P) -> Option<&JavaStr>where
P: JavaStrPattern,
See str::strip_suffix
.
assert_eq!(
JavaStr::from_str("bar:foo").strip_suffix(":foo"),
Some(JavaStr::from_str("bar"))
);
assert_eq!(JavaStr::from_str("bar:foo").strip_suffix("bar"), None);
assert_eq!(
JavaStr::from_str("foofoo").strip_suffix("foo"),
Some(JavaStr::from_str("foo"))
);
sourcepub fn to_ascii_lowercase(&self) -> JavaString
pub fn to_ascii_lowercase(&self) -> JavaString
sourcepub fn to_ascii_uppercase(&self) -> JavaString
pub fn to_ascii_uppercase(&self) -> JavaString
sourcepub fn to_lowercase(&self) -> JavaString
pub fn to_lowercase(&self) -> JavaString
See str::to_lowercase
.
let s = JavaStr::from_str("HELLO");
assert_eq!("hello", s.to_lowercase());
let odysseus = JavaStr::from_str("ὈΔΥΣΣΕΎΣ");
assert_eq!("ὀδυσσεύς", odysseus.to_lowercase());
let s = JavaString::from("Hello ")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str()
+ JavaStr::from_str(" World!");
let expected = JavaString::from("hello ")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str()
+ JavaStr::from_str(" world!");
assert_eq!(expected, s.to_lowercase());
sourcepub fn to_uppercase(&self) -> JavaString
pub fn to_uppercase(&self) -> JavaString
See str::to_uppercase
.
let s = JavaStr::from_str("hello");
assert_eq!("HELLO", s.to_uppercase());
let s = JavaStr::from_str("tschüß");
assert_eq!("TSCHÜSS", s.to_uppercase());
let s = JavaString::from("Hello ")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str()
+ JavaStr::from_str(" World!");
let expected = JavaString::from("HELLO ")
+ JavaString::from(JavaCodePoint::from_u32(0xd800).unwrap()).as_java_str()
+ JavaStr::from_str(" WORLD!");
assert_eq!(expected, s.to_uppercase());
sourcepub fn trim_end(&self) -> &JavaStr
pub fn trim_end(&self) -> &JavaStr
See str::trim_end
.
sourcepub fn trim_end_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
pub fn trim_end_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
assert_eq!(
JavaStr::from_str("11foo1bar11").trim_end_matches('1'),
"11foo1bar"
);
assert_eq!(
JavaStr::from_str("123foo1bar123").trim_end_matches(JavaCodePoint::is_numeric),
"123foo1bar"
);
let x: &[_] = &['1', '2'];
assert_eq!(
JavaStr::from_str("12foo1bar12").trim_end_matches(x),
"12foo1bar"
);
sourcepub fn trim_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
pub fn trim_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
See str::trim_matches
.
assert_eq!(
JavaStr::from_str("11foo1bar11").trim_matches('1'),
"foo1bar"
);
assert_eq!(
JavaStr::from_str("123foo1bar123").trim_matches(JavaCodePoint::is_numeric),
"foo1bar"
);
let x: &[_] = &['1', '2'];
assert_eq!(JavaStr::from_str("12foo1bar12").trim_matches(x), "foo1bar");
sourcepub fn trim_start(&self) -> &JavaStr
pub fn trim_start(&self) -> &JavaStr
See str::trim_start
.
sourcepub fn trim_start_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
pub fn trim_start_matches<P>(&self, pat: P) -> &JavaStrwhere
P: JavaStrPattern,
assert_eq!(
JavaStr::from_str("11foo1bar11").trim_start_matches('1'),
"foo1bar11"
);
assert_eq!(
JavaStr::from_str("123foo1bar123").trim_start_matches(JavaCodePoint::is_numeric),
"foo1bar123"
);
let x: &[_] = &['1', '2'];
assert_eq!(
JavaStr::from_str("12foo1bar12").trim_start_matches(x),
"foo1bar12"
);
Trait Implementations§
source§impl Add<&JavaStr> for JavaString
impl Add<&JavaStr> for JavaString
source§impl Add<&str> for JavaString
impl Add<&str> for JavaString
source§impl AddAssign<&JavaStr> for JavaString
impl AddAssign<&JavaStr> for JavaString
source§fn add_assign(&mut self, rhs: &JavaStr)
fn add_assign(&mut self, rhs: &JavaStr)
+=
operation. Read moresource§impl AddAssign<&str> for JavaString
impl AddAssign<&str> for JavaString
source§fn add_assign(&mut self, rhs: &str)
fn add_assign(&mut self, rhs: &str)
+=
operation. Read moresource§impl AsMut<JavaStr> for JavaString
impl AsMut<JavaStr> for JavaString
source§impl AsRef<[u8]> for JavaString
impl AsRef<[u8]> for JavaString
source§impl AsRef<JavaStr> for JavaString
impl AsRef<JavaStr> for JavaString
source§impl Borrow<JavaStr> for JavaString
impl Borrow<JavaStr> for JavaString
source§impl BorrowMut<JavaStr> for JavaString
impl BorrowMut<JavaStr> for JavaString
source§fn borrow_mut(&mut self) -> &mut JavaStr
fn borrow_mut(&mut self) -> &mut JavaStr
source§impl Clone for JavaString
impl Clone for JavaString
source§impl Debug for JavaString
impl Debug for JavaString
source§impl Default for JavaString
impl Default for JavaString
source§fn default() -> JavaString
fn default() -> JavaString
source§impl Deref for JavaString
impl Deref for JavaString
source§impl DerefMut for JavaString
impl DerefMut for JavaString
source§impl<'de> Deserialize<'de> for JavaString
impl<'de> Deserialize<'de> for JavaString
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
source§impl Display for JavaString
impl Display for JavaString
source§impl<'a> Extend<&'a JavaCodePoint> for JavaString
impl<'a> Extend<&'a JavaCodePoint> for JavaString
source§fn extend<T: IntoIterator<Item = &'a JavaCodePoint>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = &'a JavaCodePoint>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a> Extend<&'a JavaStr> for JavaString
impl<'a> Extend<&'a JavaStr> for JavaString
source§fn extend<T: IntoIterator<Item = &'a JavaStr>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = &'a JavaStr>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a> Extend<&'a char> for JavaString
impl<'a> Extend<&'a char> for JavaString
source§fn extend<T: IntoIterator<Item = &'a char>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = &'a char>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a> Extend<&'a str> for JavaString
impl<'a> Extend<&'a str> for JavaString
source§fn extend<T: IntoIterator<Item = &'a str>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = &'a str>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<Box<JavaStr>> for JavaString
impl Extend<Box<JavaStr>> for JavaString
source§fn extend<T: IntoIterator<Item = Box<JavaStr>>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Box<JavaStr>>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<Box<str>> for JavaString
impl Extend<Box<str>> for JavaString
source§fn extend<T: IntoIterator<Item = Box<str>>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Box<str>>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a> Extend<Cow<'a, JavaStr>> for JavaString
impl<'a> Extend<Cow<'a, JavaStr>> for JavaString
source§fn extend<T: IntoIterator<Item = Cow<'a, JavaStr>>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Cow<'a, JavaStr>>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a> Extend<Cow<'a, str>> for JavaString
impl<'a> Extend<Cow<'a, str>> for JavaString
source§fn extend<T: IntoIterator<Item = Cow<'a, str>>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Cow<'a, str>>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<JavaCodePoint> for JavaString
impl Extend<JavaCodePoint> for JavaString
source§fn extend<T: IntoIterator<Item = JavaCodePoint>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = JavaCodePoint>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<JavaString> for JavaString
impl Extend<JavaString> for JavaString
source§fn extend<T: IntoIterator<Item = JavaString>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = JavaString>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<String> for JavaString
impl Extend<String> for JavaString
source§fn extend<T: IntoIterator<Item = String>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = String>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Extend<char> for JavaString
impl Extend<char> for JavaString
source§fn extend<T: IntoIterator<Item = char>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = char>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl From<&JavaStr> for JavaString
impl From<&JavaStr> for JavaString
source§impl From<&JavaString> for JavaString
impl From<&JavaString> for JavaString
source§fn from(value: &JavaString) -> Self
fn from(value: &JavaString) -> Self
source§impl From<&String> for JavaString
impl From<&String> for JavaString
source§impl From<&mut JavaStr> for JavaString
impl From<&mut JavaStr> for JavaString
source§impl From<&mut str> for JavaString
impl From<&mut str> for JavaString
source§impl From<&str> for JavaString
impl From<&str> for JavaString
source§impl From<JavaCodePoint> for JavaString
impl From<JavaCodePoint> for JavaString
source§fn from(value: JavaCodePoint) -> Self
fn from(value: JavaCodePoint) -> Self
source§impl From<JavaString> for Arc<JavaStr>
impl From<JavaString> for Arc<JavaStr>
source§fn from(value: JavaString) -> Self
fn from(value: JavaString) -> Self
source§impl From<JavaString> for Box<JavaStr>
impl From<JavaString> for Box<JavaStr>
source§fn from(value: JavaString) -> Self
fn from(value: JavaString) -> Self
source§impl<'a> From<JavaString> for Cow<'a, JavaStr>
impl<'a> From<JavaString> for Cow<'a, JavaStr>
source§fn from(value: JavaString) -> Self
fn from(value: JavaString) -> Self
source§impl From<JavaString> for Rc<JavaStr>
impl From<JavaString> for Rc<JavaStr>
source§fn from(value: JavaString) -> Self
fn from(value: JavaString) -> Self
source§impl From<JavaString> for Vec<u8>
impl From<JavaString> for Vec<u8>
source§fn from(value: JavaString) -> Self
fn from(value: JavaString) -> Self
source§impl From<String> for JavaString
impl From<String> for JavaString
source§impl From<char> for JavaString
impl From<char> for JavaString
source§impl<'a> FromIterator<&'a JavaCodePoint> for JavaString
impl<'a> FromIterator<&'a JavaCodePoint> for JavaString
source§fn from_iter<T: IntoIterator<Item = &'a JavaCodePoint>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = &'a JavaCodePoint>>(iter: T) -> Self
source§impl<'a> FromIterator<&'a char> for JavaString
impl<'a> FromIterator<&'a char> for JavaString
source§impl<'a> FromIterator<&'a str> for JavaString
impl<'a> FromIterator<&'a str> for JavaString
source§impl FromIterator<Box<JavaStr>> for JavaString
impl FromIterator<Box<JavaStr>> for JavaString
source§impl FromIterator<Box<str>> for JavaString
impl FromIterator<Box<str>> for JavaString
source§impl<'a> FromIterator<Cow<'a, JavaStr>> for JavaString
impl<'a> FromIterator<Cow<'a, JavaStr>> for JavaString
source§impl<'a> FromIterator<Cow<'a, str>> for JavaString
impl<'a> FromIterator<Cow<'a, str>> for JavaString
source§impl FromIterator<JavaCodePoint> for JavaString
impl FromIterator<JavaCodePoint> for JavaString
source§fn from_iter<T: IntoIterator<Item = JavaCodePoint>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = JavaCodePoint>>(iter: T) -> Self
source§impl FromIterator<JavaString> for JavaString
impl FromIterator<JavaString> for JavaString
source§fn from_iter<T: IntoIterator<Item = JavaString>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = JavaString>>(iter: T) -> Self
source§impl FromIterator<String> for JavaString
impl FromIterator<String> for JavaString
source§impl FromIterator<char> for JavaString
impl FromIterator<char> for JavaString
source§impl FromStr for JavaString
impl FromStr for JavaString
source§impl Hash for JavaString
impl Hash for JavaString
source§impl Index<RangeFull> for JavaString
impl Index<RangeFull> for JavaString
source§impl Index<RangeInclusive<usize>> for JavaString
impl Index<RangeInclusive<usize>> for JavaString
source§impl Index<RangeToInclusive<usize>> for JavaString
impl Index<RangeToInclusive<usize>> for JavaString
source§impl IndexMut<RangeFull> for JavaString
impl IndexMut<RangeFull> for JavaString
source§impl IndexMut<RangeInclusive<usize>> for JavaString
impl IndexMut<RangeInclusive<usize>> for JavaString
source§impl IndexMut<RangeToInclusive<usize>> for JavaString
impl IndexMut<RangeToInclusive<usize>> for JavaString
source§impl Ord for JavaString
impl Ord for JavaString
source§fn cmp(&self, other: &JavaString) -> Ordering
fn cmp(&self, other: &JavaString) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl<'a> PartialEq<&'a JavaStr> for JavaString
impl<'a> PartialEq<&'a JavaStr> for JavaString
source§impl<'a> PartialEq<&'a str> for JavaString
impl<'a> PartialEq<&'a str> for JavaString
source§impl PartialEq<JavaStr> for JavaString
impl PartialEq<JavaStr> for JavaString
source§impl<'a> PartialEq<JavaString> for &'a JavaStr
impl<'a> PartialEq<JavaString> for &'a JavaStr
source§impl<'a> PartialEq<JavaString> for &'a str
impl<'a> PartialEq<JavaString> for &'a str
source§impl PartialEq<JavaString> for JavaStr
impl PartialEq<JavaString> for JavaStr
source§impl PartialEq<JavaString> for String
impl PartialEq<JavaString> for String
source§impl PartialEq<JavaString> for str
impl PartialEq<JavaString> for str
source§impl PartialEq<String> for JavaString
impl PartialEq<String> for JavaString
source§impl PartialEq<str> for JavaString
impl PartialEq<str> for JavaString
source§impl PartialEq for JavaString
impl PartialEq for JavaString
source§impl PartialOrd for JavaString
impl PartialOrd for JavaString
source§impl Serialize for JavaString
impl Serialize for JavaString
source§impl Write for JavaString
impl Write for JavaString
impl Eq for JavaString
impl StructuralPartialEq for JavaString
Auto Trait Implementations§
impl Freeze for JavaString
impl RefUnwindSafe for JavaString
impl Send for JavaString
impl Sync for JavaString
impl Unpin for JavaString
impl UnwindSafe for JavaString
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)