Merge pull request #594 from AppFlowy-IO/refactor/lib_dispatch_serde_feat

chore: config feature flag in lib-dispatch
This commit is contained in:
Nathan.fooo 2022-07-06 14:43:28 +08:00 committed by GitHub
commit 63c7af5fd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 11 deletions

View File

@ -22,8 +22,8 @@ thread-id = "3.3.0"
lazy_static = "1.4.0"
dyn-clone = "1.0"
derivative = "2.2.0"
serde_json = {version = "1.0"}
serde = { version = "1.0", features = ["derive"] }
serde_json = {version = "1.0", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
dashmap = "5"
#optional crate
@ -37,5 +37,5 @@ futures-util = "0.3.15"
[features]
default = ["use_protobuf"]
use_serde = ["bincode"]
use_serde = ["bincode", "serde_json", "serde"]
use_protobuf= ["protobuf"]

View File

@ -6,7 +6,6 @@ use crate::{
use bytes::Bytes;
use dyn_clone::DynClone;
use serde::{Serialize, Serializer};
use std::fmt;
use tokio::{sync::mpsc::error::SendError, task::JoinError};
@ -86,11 +85,11 @@ impl From<DispatchError> for EventResponse {
err.inner_error().as_response()
}
}
impl Serialize for DispatchError {
fn serialize<S>(&self, serializer: S) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
#[cfg(feature = "use_serde")]
impl serde::Serialize for DispatchError {
fn serialize<S>(&self, serializer: S) -> Result<<S as serde::Serializer>::Ok, <S as serde::Serializer>::Error>
where
S: Serializer,
S: serde::Serializer,
{
serializer.serialize_str(&format!("{}", self))
}

View File

@ -4,7 +4,8 @@ use std::{fmt, fmt::Formatter};
pub enum PayloadError {}
// TODO: support stream data
#[derive(Clone, serde::Serialize)]
#[derive(Clone)]
#[cfg_attr(feature = "user_serde", derive(serde::Serialize))]
pub enum Payload {
None,
Bytes(Bytes),

View File

@ -8,7 +8,8 @@ use crate::{
use derivative::*;
use std::{convert::TryFrom, fmt, fmt::Formatter};
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "user_serde", derive(serde::Serialize))]
pub enum StatusCode {
Ok = 0,
Err = 1,
@ -16,7 +17,8 @@ pub enum StatusCode {
}
// serde user guide: https://serde.rs/field-attrs.html
#[derive(Debug, Clone, serde::Serialize, Derivative)]
#[derive(Debug, Clone, Derivative)]
#[cfg_attr(feature = "user_serde", derive(serde::Serialize))]
pub struct EventResponse {
#[derivative(Debug = "ignore")]
pub payload: Payload,