feat: export_schema

Sergey Onufrienko created

Change summary

crates/theme/src/theme_settings.rs | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Detailed changes

crates/theme/src/theme_settings.rs 🔗

@@ -183,3 +183,20 @@ fn merge<T: Copy>(target: &mut T, value: Option<T>) {
         *target = value;
     }
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+    use schemars::schema_for;
+
+    #[test]
+    fn export_schema() {
+        let theme_settings_content = schema_for!(ThemeSettingsContent);
+        let output1 = serde_json::to_string_pretty(&theme_settings_content).unwrap();
+        std::fs::write("schemas/theme_settings_content.json", output1);
+
+        let theme_settings = schema_for!(ThemeSettings);
+        let output2 = serde_json::to_string_pretty(&theme_settings).unwrap();
+        std::fs::write("schemas/theme_settings.json", output2);
+    }
+}