Skip to content

Commit 1d9cda1

Browse files
committed
Add ToLua implementation for Cow<str> and Cow<CStr>
1 parent 7332c6a commit 1d9cda1

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/conversion.rs

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::borrow::Cow;
12
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
23
use std::ffi::{CStr, CString};
34
use std::hash::{BuildHasher, Hash};
@@ -222,6 +223,12 @@ impl<'lua> ToLua<'lua> for &str {
222223
}
223224
}
224225

226+
impl<'lua> ToLua<'lua> for Cow<'_, str> {
227+
fn to_lua(self, lua: &'lua Lua) -> Result<Value<'lua>> {
228+
Ok(Value::String(lua.create_string(self.as_bytes())?))
229+
}
230+
}
231+
225232
impl<'lua> ToLua<'lua> for CString {
226233
fn to_lua(self, lua: &'lua Lua) -> Result<Value<'lua>> {
227234
Ok(Value::String(lua.create_string(self.as_bytes())?))
@@ -256,6 +263,12 @@ impl<'lua> ToLua<'lua> for &CStr {
256263
}
257264
}
258265

266+
impl<'lua> ToLua<'lua> for Cow<'_, CStr> {
267+
fn to_lua(self, lua: &'lua Lua) -> Result<Value<'lua>> {
268+
Ok(Value::String(lua.create_string(self.to_bytes())?))
269+
}
270+
}
271+
259272
impl<'lua> ToLua<'lua> for BString {
260273
fn to_lua(self, lua: &'lua Lua) -> Result<Value<'lua>> {
261274
Ok(Value::String(lua.create_string(&self)?))

0 commit comments

Comments
 (0)