diff --git a/build/wire.rs b/build/wire.rs index 31137918..a21f8895 100644 --- a/build/wire.rs +++ b/build/wire.rs @@ -830,6 +830,7 @@ fn write_request_handler( writeln!(f, " }};")?; writeln!(f, " Err({error}::MethodError {{")?; writeln!(f, " interface: {camel_obj_name},")?; + writeln!(f, " id: self.id(),")?; writeln!(f, " method,")?; writeln!(f, " error,")?; writeln!(f, " }})")?; diff --git a/src/client/error.rs b/src/client/error.rs index 08e592ed..5f7402c8 100644 --- a/src/client/error.rs +++ b/src/client/error.rs @@ -37,9 +37,10 @@ pub enum ClientError { ClientIdOutOfBounds, #[error("Object {0} is not a display")] NotADisplay(WlDisplayId), - #[error("Could not process a `{}.{}` request", .interface.name(), .method)] + #[error("Could not process a `{}#{}.{}` request", .interface.name(), .id, .method)] MethodError { interface: Interface, + id: ObjectId, method: &'static str, #[source] error: Box, diff --git a/src/wl_usr.rs b/src/wl_usr.rs index e7f5321d..0dfc3cfd 100644 --- a/src/wl_usr.rs +++ b/src/wl_usr.rs @@ -63,9 +63,10 @@ pub enum UsrConError { Write(#[source] BufFdError), #[error("Server sent an event for object {0} that does not exist")] MissingObject(ObjectId), - #[error("Could not process a `{}.{}` event", .interface.name(), .method)] + #[error("Could not process a `{}#{}.{}` event", .interface.name(), .id, .method)] MethodError { interface: Interface, + id: ObjectId, method: &'static str, #[source] error: Box,