events.rs 763 B

123456789101112131415161718192021222324252627282930313233
  1. //! Convert a serialized event to an event trigger
  2. use dioxus_html::events::*;
  3. use serde::{Deserialize, Serialize};
  4. use serde_json::from_value;
  5. use std::any::Any;
  6. use std::rc::Rc;
  7. #[derive(Deserialize, Serialize, Debug)]
  8. pub(crate) struct IpcMessage {
  9. method: String,
  10. params: serde_json::Value,
  11. }
  12. impl IpcMessage {
  13. pub(crate) fn method(&self) -> &str {
  14. self.method.as_str()
  15. }
  16. pub(crate) fn params(self) -> serde_json::Value {
  17. self.params
  18. }
  19. }
  20. pub(crate) fn parse_ipc_message(payload: &str) -> Option<IpcMessage> {
  21. match serde_json::from_str(payload) {
  22. Ok(message) => Some(message),
  23. Err(e) => {
  24. log::error!("could not parse IPC message, error: {}", e);
  25. None
  26. }
  27. }
  28. }