ffi_response.rs 921 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
  2. use lib_dispatch::prelude::{AFPluginEventResponse, Payload, StatusCode};
  3. #[derive(ProtoBuf_Enum, Clone, Copy, Default)]
  4. pub enum FFIStatusCode {
  5. #[default]
  6. Ok = 0,
  7. Err = 1,
  8. Internal = 2,
  9. }
  10. #[derive(ProtoBuf, Default)]
  11. pub struct FFIResponse {
  12. #[pb(index = 1)]
  13. payload: Vec<u8>,
  14. #[pb(index = 2)]
  15. code: FFIStatusCode,
  16. }
  17. impl std::convert::From<AFPluginEventResponse> for FFIResponse {
  18. fn from(resp: AFPluginEventResponse) -> Self {
  19. let payload = match resp.payload {
  20. Payload::Bytes(bytes) => bytes.to_vec(),
  21. Payload::None => vec![],
  22. };
  23. let code = match resp.status_code {
  24. StatusCode::Ok => FFIStatusCode::Ok,
  25. StatusCode::Err => FFIStatusCode::Err,
  26. };
  27. // let msg = match resp.error {
  28. // None => "".to_owned(),
  29. // Some(e) => format!("{:?}", e),
  30. // };
  31. FFIResponse { payload, code }
  32. }
  33. }