From 9cefc225fcf693081c4853b095dd88f571a72478 Mon Sep 17 00:00:00 2001 From: Alex Groleau Date: Mon, 18 May 2026 19:46:29 -0400 Subject: [PATCH] fixed type and page action serialization --- src/database/action.rs | 12 ++++++++++++ src/database/mod.rs | 1 + src/database/object.rs | 11 ++--------- src/database/page.rs | 12 +----------- 4 files changed, 16 insertions(+), 20 deletions(-) create mode 100644 src/database/action.rs diff --git a/src/database/action.rs b/src/database/action.rs new file mode 100644 index 0000000..40d7f3f --- /dev/null +++ b/src/database/action.rs @@ -0,0 +1,12 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[serde(default)] +pub struct Action { + #[serde(skip_serializing_if = "Option::is_none")] + pub punc: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub navigate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub launch: Option, +} diff --git a/src/database/mod.rs b/src/database/mod.rs index 2e2582e..f1a6653 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -1,3 +1,4 @@ +pub mod action; pub mod compile; pub mod edge; pub mod r#enum; diff --git a/src/database/object.rs b/src/database/object.rs index 2d289f9..5698aca 100644 --- a/src/database/object.rs +++ b/src/database/object.rs @@ -1,7 +1,8 @@ +use crate::database::action::Action; use crate::database::schema::Schema; +use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use serde_json::Value; -use indexmap::IndexMap; use std::sync::Arc; use std::sync::OnceLock; @@ -219,14 +220,6 @@ pub enum SchemaTypeOrArray { Multiple(Vec), } -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct Action { - #[serde(skip_serializing_if = "Option::is_none")] - pub navigate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub punc: Option, -} - #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum Dependency { diff --git a/src/database/page.rs b/src/database/page.rs index c3efcd8..57c20a9 100644 --- a/src/database/page.rs +++ b/src/database/page.rs @@ -1,3 +1,4 @@ +use crate::database::action::Action; use indexmap::IndexMap; use serde::{Deserialize, Serialize}; @@ -22,14 +23,3 @@ pub struct Sidebar { #[serde(skip_serializing_if = "Option::is_none")] pub priority: Option, } - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -#[serde(default)] -pub struct Action { - #[serde(skip_serializing_if = "Option::is_none")] - pub punc: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub navigate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub present: Option, -}