Working response

This commit is contained in:
2026-02-19 05:11:36 +01:00
parent 9af16feda6
commit d1bed32ca3
+14 -13
View File
@@ -75,14 +75,15 @@ impl Session {
match msg { match msg {
Message::Request { id, method, data } => { Message::Request { id, method, data } => {
if let Some(m) = s.methods.lock().await.get(&method) { if let Some(m) = s.methods.lock().await.get(&method) {
(m)(id, data).await; if let Some((err, res)) = (m)(id, data).await {
// let s = s.clone(); if err {
// if let Ok(req) = serde_json::from_value(value) { s.respond_error(id, res)
// match handler(id, req).await { .await
// Ok(res) => s.respond::<M>(id, res).await, .expect("Failed to respond");
// Err(res) => s.respond_error::<M>(id, res).await, } else {
// }; s.respond(id, res).await.expect("Failed to respond");
// } }
}
} }
} }
Message::Response { id, result } => { Message::Response { id, result } => {
@@ -170,16 +171,16 @@ impl Session {
} }
} }
pub async fn respond<M: Method>(&self, to: u32, res: M::Response) -> crate::Result<()> { pub async fn respond(&self, to: u32, val: serde_json::Value) -> crate::Result<()> {
self.send::<M>(&Message::Response { self.send::<GenericMethod>(&Message::Response {
id: to, id: to,
result: res, result: val,
}) })
.await .await
} }
pub async fn respond_error<M: Method>(&self, to: u32, err: M::Error) -> crate::Result<()> { pub async fn respond_error(&self, to: u32, val: serde_json::Value) -> crate::Result<()> {
self.send::<M>(&Message::ErrorResponse { id: to, error: err }) self.send::<GenericMethod>(&Message::ErrorResponse { id: to, error: val })
.await .await
} }