pub struct String(/* private fields */);
Expand description
Handle to an internal Lua string.
Unlike Rust strings, Lua strings may not be valid UTF-8.
Implementations§
Source§impl String
impl String
Sourcepub fn to_str(&self) -> Result<BorrowedStr<'_>>
pub fn to_str(&self) -> Result<BorrowedStr<'_>>
Get a BorrowedStr
if the Lua string is valid UTF-8.
§Examples
let globals = lua.globals();
let version: String = globals.get("_VERSION")?;
assert!(version.to_str()?.contains("Lua"));
let non_utf8: String = lua.load(r#" "test\255" "#).eval()?;
assert!(non_utf8.to_str().is_err());
Sourcepub fn to_string_lossy(&self) -> StdString
pub fn to_string_lossy(&self) -> StdString
Converts this string to a StdString
.
Any non-Unicode sequences are replaced with U+FFFD REPLACEMENT CHARACTER
.
This method returns StdString
instead of Cow<'_, str>
because lifetime cannot be
bound to a weak Lua object.
§Examples
let lua = Lua::new();
let s = lua.create_string(b"test\xff")?;
assert_eq!(s.to_string_lossy(), "test\u{fffd}");
Sourcepub fn as_bytes(&self) -> BorrowedBytes<'_>
pub fn as_bytes(&self) -> BorrowedBytes<'_>
Get the bytes that make up this string.
The returned slice will not contain the terminating nul byte, but will contain any nul bytes embedded into the Lua string.
§Examples
let non_utf8: String = lua.load(r#" "test\255" "#).eval()?;
assert!(non_utf8.to_str().is_err()); // oh no :(
assert_eq!(non_utf8.as_bytes(), &b"test\xff"[..]);
Sourcepub fn as_bytes_with_nul(&self) -> BorrowedBytes<'_>
pub fn as_bytes_with_nul(&self) -> BorrowedBytes<'_>
Get the bytes that make up this string, including the trailing nul byte.
Sourcepub fn to_pointer(&self) -> *const c_void
pub fn to_pointer(&self) -> *const c_void
Converts this string to a generic C pointer.
There is no way to convert the pointer back to its original value.
Typically this function is used only for hashing and debug information.
Trait Implementations§
Source§impl<'a> From<&'a String> for BorrowedBytes<'a>
impl<'a> From<&'a String> for BorrowedBytes<'a>
Source§impl Ord for String
impl Ord for String
Source§impl<T> PartialOrd<T> for String
impl<T> PartialOrd<T> for String
Source§impl PartialOrd for String
impl PartialOrd for String
Source§impl<'a> TryFrom<&'a String> for BorrowedStr<'a>
impl<'a> TryFrom<&'a String> for BorrowedStr<'a>
impl Eq for String
Auto Trait Implementations§
impl Freeze for String
impl !RefUnwindSafe for String
impl Send for String
impl Sync for String
impl Unpin for String
impl !UnwindSafe for String
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§impl<T> FromLuaMulti for Twhere
T: FromLua,
impl<T> FromLuaMulti for Twhere
T: FromLua,
Source§fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_args( args: MultiValue, i: usize, to: Option<&str>, lua: &Lua, ) -> Result<T, Error>
unsafe fn from_stack_multi(nvals: i32, lua: &RawLua) -> Result<T, Error>
unsafe fn from_stack_args( nargs: i32, i: usize, to: Option<&str>, lua: &RawLua, ) -> Result<T, Error>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more