Hello all,
I have a struct with a chrono::Utc member that I de/serialize with serde. I'd like to optionally support serializing to mongo, and I'd like the timestamp member to be serialized as a mongodb "ISODate".
mongo is an optional feature of the crate, and I'm not sure how to make the extra serialization directive dependent on the feature. Here's my attempt:
pub use chrono::{DateTime, Utc};
pub use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
struct Record {
#[serde(default = "chrono::Utc::now)]"
#[cfg(feature = "mongo")]
#[serde(with = "bson::serde_helpers::chrono_datetime_as_bson_datetime")]
pub start_time: DateTime<Utc>,
pub message: String,
}
If the crate is compiled w/o --features mongo
, then start_time
doesn't appear in the code.
Is there a way to conditionally specify directives based on feature flags?