mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
|
|
use flowy_dispatch::prelude::{EventResponse, Payload, StatusCode};
|
|
|
|
#[derive(ProtoBuf_Enum, Clone, Copy)]
|
|
pub enum FFIStatusCode {
|
|
Ok = 0,
|
|
Err = 1,
|
|
Internal = 2,
|
|
}
|
|
|
|
impl std::default::Default for FFIStatusCode {
|
|
fn default() -> FFIStatusCode { FFIStatusCode::Ok }
|
|
}
|
|
|
|
#[derive(ProtoBuf, Default)]
|
|
pub struct FFIResponse {
|
|
#[pb(index = 1)]
|
|
payload: Vec<u8>,
|
|
|
|
#[pb(index = 2)]
|
|
code: FFIStatusCode,
|
|
}
|
|
|
|
impl std::convert::From<EventResponse> for FFIResponse {
|
|
fn from(resp: EventResponse) -> Self {
|
|
let payload = match resp.payload {
|
|
Payload::Bytes(bytes) => bytes.to_vec(),
|
|
Payload::None => vec![],
|
|
};
|
|
|
|
let code = match resp.status_code {
|
|
StatusCode::Ok => FFIStatusCode::Ok,
|
|
StatusCode::Err => FFIStatusCode::Err,
|
|
StatusCode::Internal => FFIStatusCode::Internal,
|
|
};
|
|
|
|
// let msg = match resp.error {
|
|
// None => "".to_owned(),
|
|
// Some(e) => format!("{:?}", e),
|
|
// };
|
|
|
|
FFIResponse { payload, code }
|
|
}
|
|
}
|