This commit is contained in:
sxyazi 2024-05-11 17:27:30 +08:00
parent 6649285164
commit f56034adc0
No known key found for this signature in database
2 changed files with 5 additions and 5 deletions

View file

@ -12,12 +12,12 @@ pub struct InputRx<T: StreamExt<Item = Result<String, InputError>>> {
impl<T: StreamExt<Item = Result<String, InputError>>> InputRx<T> { impl<T: StreamExt<Item = Result<String, InputError>>> InputRx<T> {
pub fn new(inner: T) -> Self { Self { inner } } pub fn new(inner: T) -> Self { Self { inner } }
pub async fn parse(inner: T) -> (Option<String>, u8) { pub async fn consume(inner: T) -> (Option<String>, u8) {
pin!(inner); pin!(inner);
inner.next().await.map(Self::cast).unwrap_or((None, 0)) inner.next().await.map(Self::parse).unwrap_or((None, 0))
} }
fn cast(res: Result<String, InputError>) -> (Option<String>, u8) { fn parse(res: Result<String, InputError>) -> (Option<String>, u8) {
match res { match res {
Ok(s) => (Some(s), 1), Ok(s) => (Some(s), 1),
Err(InputError::Canceled(s)) => (Some(s), 2), Err(InputError::Canceled(s)) => (Some(s), 2),
@ -31,7 +31,7 @@ impl<T: StreamExt<Item = Result<String, InputError>> + 'static> UserData for Inp
fn add_methods<'lua, M: LuaUserDataMethods<'lua, Self>>(methods: &mut M) { fn add_methods<'lua, M: LuaUserDataMethods<'lua, Self>>(methods: &mut M) {
methods.add_async_method_mut("recv", |_, me, ()| async move { methods.add_async_method_mut("recv", |_, me, ()| async move {
let mut inner = unsafe { Pin::new_unchecked(&mut me.inner) }; let mut inner = unsafe { Pin::new_unchecked(&mut me.inner) };
Ok(inner.next().await.map(Self::cast).unwrap_or((None, 0))) Ok(inner.next().await.map(Self::parse).unwrap_or((None, 0)))
}); });
} }
} }

View file

@ -71,7 +71,7 @@ impl Utils {
})); }));
if !realtime { if !realtime {
return InputRx::parse(rx).await.into_lua_multi(lua); return InputRx::consume(rx).await.into_lua_multi(lua);
} }
let debounce = t.raw_get::<_, f64>("debounce").unwrap_or_default(); let debounce = t.raw_get::<_, f64>("debounce").unwrap_or_default();