use serde::{Deserialize, Serialize};
use crate::{edge::EdgeCurvature, RankDir};
#[cfg_attr(
all(feature = "schemars", not(feature = "test")),
derive(schemars::JsonSchema)
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Deserialize, Serialize)]
pub struct RenderOptions {
#[serde(default, skip_serializing_if = "EdgeCurvature::is_default")]
pub edge_curvature: EdgeCurvature,
#[serde(default, skip_serializing_if = "RankDir::is_default")]
pub rank_dir: RankDir,
}
impl RenderOptions {
pub fn is_default(&self) -> bool {
self.edge_curvature.is_default() && self.rank_dir.is_default()
}
}