use serde::{Deserialize, Serialize};
pub const SUPPORTED_MDBOOK_VERSION: &str = "0.5.2";
pub const PREPROCESSOR_CONFIG_KEY: &str = "preprocessor.plotly";
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(default, rename_all = "kebab-case")]
pub struct PreprocessorConfig {
pub output_type: PlotlyOutputType,
pub input_type: PlotlyInputType,
pub offline_js_sources: bool,
pub map_eval: MapEvalConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(default, rename_all = "kebab-case")]
pub struct MapEvalConfig {
pub enabled: bool,
pub reuse_slab: bool,
pub compile_expressions: bool,
pub namespace_scope: MapNamespaceScope,
}
impl Default for MapEvalConfig {
fn default() -> Self {
Self {
enabled: true,
reuse_slab: true,
compile_expressions: true,
namespace_scope: MapNamespaceScope::FullMap,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
pub enum MapNamespaceScope {
#[default]
FullMap,
ExportsOnly,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
pub enum PlotlyOutputType {
#[default]
#[cfg(feature = "plotly-html-handler")]
PlotlyHtml,
#[cfg(feature = "plotly-svg-handler")]
PlotlySvg,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "kebab-case")]
pub enum PlotlyInputType {
#[default]
JSONInput,
}