@@ -43,6 +43,8 @@ impl Sendable {
4343 Value :: UserData ( ud) => {
4444 if let Ok ( t) = ud. take :: < yazi_binding:: Url > ( ) {
4545 Data :: Url ( t. into ( ) )
46+ } else if let Ok ( t) = ud. borrow :: < yazi_binding:: Id > ( ) {
47+ Data :: Id ( * * t)
4648 } else if let Ok ( t) = ud. take :: < yazi_fs:: FilesOp > ( ) {
4749 Data :: Any ( Box :: new ( t) )
4850 } else if let Ok ( t) = ud. take :: < super :: body:: BodyYankIter > ( ) {
@@ -107,6 +109,7 @@ impl Sendable {
107109 }
108110 Value :: Table ( tbl)
109111 }
112+ Data :: Id ( i) => yazi_binding:: Id ( * i) . into_lua ( lua) ?,
110113 Data :: Url ( u) => yazi_binding:: Url :: new ( u. clone ( ) ) . into_lua ( lua) ?,
111114 Data :: Bytes ( b) => Value :: String ( lua. create_string ( b) ?) ,
112115 Data :: Any ( a) => Value :: UserData ( if let Some ( t) = a. downcast_ref :: < yazi_fs:: FilesOp > ( ) {
@@ -188,23 +191,15 @@ impl Sendable {
188191 Value :: Table ( _) => Err ( "table is not supported" . into_lua_err ( ) ) ?,
189192 Value :: Function ( _) => Err ( "function is not supported" . into_lua_err ( ) ) ?,
190193 Value :: Thread ( _) => Err ( "thread is not supported" . into_lua_err ( ) ) ?,
191- Value :: UserData ( ud) => {
192- if let Ok ( t) = ud. take :: < yazi_binding:: Url > ( ) {
193- DataKey :: Url ( t. into ( ) )
194- } else {
195- Err ( "unsupported userdata included" . into_lua_err ( ) ) ?
196- }
197- }
194+ Value :: UserData ( _) => Err ( "userdata is not supported" . into_lua_err ( ) ) ?,
198195 Value :: Error ( _) => Err ( "error is not supported" . into_lua_err ( ) ) ?,
199196 Value :: Other ( ..) => Err ( "unknown data is not supported" . into_lua_err ( ) ) ?,
200197 } )
201198 }
202199
200+ #[ inline]
203201 fn key_to_value ( lua : & Lua , key : DataKey ) -> mlua:: Result < Value > {
204- Ok ( match key {
205- DataKey :: Url ( u) => yazi_binding:: Url :: new ( u) . into_lua ( lua) ?,
206- key => Self :: key_to_value_ref ( lua, & key) ?,
207- } )
202+ Self :: key_to_value_ref ( lua, & key)
208203 }
209204
210205 fn key_to_value_ref ( lua : & Lua , key : & DataKey ) -> mlua:: Result < Value > {
@@ -214,7 +209,6 @@ impl Sendable {
214209 DataKey :: Integer ( i) => Value :: Integer ( * i) ,
215210 DataKey :: Number ( n) => Value :: Number ( n. get ( ) ) ,
216211 DataKey :: String ( s) => Value :: String ( lua. create_string ( s. as_ref ( ) ) ?) ,
217- DataKey :: Url ( u) => yazi_binding:: Url :: new ( u. clone ( ) ) . into_lua ( lua) ?,
218212 } )
219213 }
220214}
0 commit comments