helper.rs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. use flowy_sdk::module::build_modules;
  2. pub use flowy_sdk::*;
  3. use flowy_sys::prelude::*;
  4. use std::{
  5. fmt::{Debug, Display},
  6. hash::Hash,
  7. sync::Once,
  8. };
  9. static INIT: Once = Once::new();
  10. #[allow(dead_code)]
  11. pub fn init_system() {
  12. INIT.call_once(|| {
  13. FlowySDK::init_log();
  14. });
  15. FlowySDK::init("123");
  16. }
  17. pub struct FlowySDKTester {
  18. request: DispatchRequest<i64>,
  19. }
  20. impl FlowySDKTester {
  21. pub fn new<E>(event: E) -> Self
  22. where
  23. E: Eq + Hash + Debug + Clone + Display,
  24. {
  25. Self {
  26. request: DispatchRequest::new(1, event),
  27. }
  28. }
  29. #[allow(dead_code)]
  30. pub fn bytes_payload<T>(mut self, payload: T) -> Self
  31. where
  32. T: serde::Serialize,
  33. {
  34. let bytes: Vec<u8> = bincode::serialize(&payload).unwrap();
  35. self.request = self.request.payload(Payload::Bytes(bytes));
  36. self
  37. }
  38. #[allow(dead_code)]
  39. pub fn protobuf_payload<T>(mut self, payload: T) -> Self
  40. where
  41. T: ::protobuf::Message,
  42. {
  43. let bytes: Vec<u8> = payload.write_to_bytes().unwrap();
  44. self.request = self.request.payload(Payload::Bytes(bytes));
  45. self
  46. }
  47. pub async fn async_send(self) -> EventResponse {
  48. init_system();
  49. let resp = async_send(self.request).await.unwrap();
  50. dbg!(&resp);
  51. resp
  52. }
  53. pub fn sync_send(self) -> EventResponse {
  54. init_system();
  55. let resp = sync_send(self.request).unwrap();
  56. dbg!(&resp);
  57. resp
  58. }
  59. }