34 lines
971 B
Rust
Raw Normal View History

use crate::expressions::truth_table::{Hide, Sort};
2024-09-05 21:57:50 +02:00
use crate::utils::serialize::{deserialize_bool, ret_true};
use serde::Deserialize;
2024-06-21 18:07:42 +02:00
// TODO deserialize_bool should not be necessary
#[derive(Deserialize)]
2024-06-21 18:07:42 +02:00
#[serde(rename_all = "camelCase")]
pub struct SimplifyOptions {
2024-09-05 21:57:50 +02:00
#[serde(default = "ret_true", deserialize_with = "deserialize_bool")]
pub simplify: bool,
2024-06-21 18:07:42 +02:00
#[serde(default, deserialize_with = "deserialize_bool")]
pub ignore_case: bool,
}
#[derive(Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TruthTableOptions {
#[serde(default)]
pub sort: Sort,
#[serde(default)]
pub hide: Hide,
#[serde(default, deserialize_with = "deserialize_bool")]
pub hide_intermediate_steps: bool,
}
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SimplifyAndTableOptions {
#[serde(flatten)]
pub simplify_options: SimplifyOptions,
#[serde(flatten)]
pub table_options: TruthTableOptions,
}