summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2024-10-03 21:40:42 +0200
committerGitHub <noreply@github.com>2024-10-03 19:40:42 +0000
commit60f9f66950f1fbef3d6042533e768b9ee933dd24 (patch)
tree223de6e8570d07e746c3857806cfce4a4727964d
parent4e6021cf882197468ec9813ce0ed1044bce7b5d2 (diff)
Serialize and Deserialize for `PdfStandard` (#5108)
-rw-r--r--Cargo.lock1
-rw-r--r--crates/typst-cli/src/args.rs2
-rw-r--r--crates/typst-pdf/Cargo.toml1
-rw-r--r--crates/typst-pdf/src/lib.rs7
4 files changed, 8 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 9d183f02..a475aa0a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2832,6 +2832,7 @@ dependencies = [
"miniz_oxide",
"once_cell",
"pdf-writer",
+ "serde",
"subsetter",
"svg2pdf",
"ttf-parser",
diff --git a/crates/typst-cli/src/args.rs b/crates/typst-cli/src/args.rs
index 6505994b..65259ab7 100644
--- a/crates/typst-cli/src/args.rs
+++ b/crates/typst-cli/src/args.rs
@@ -129,7 +129,7 @@ pub struct CompileCommand {
pub pdf_standard: Vec<PdfStandard>,
}
-/// A PDF standard.
+/// A PDF standard that Typst can enforce conformance with.
#[derive(Debug, Copy, Clone, Eq, PartialEq, ValueEnum)]
#[allow(non_camel_case_types)]
pub enum PdfStandard {
diff --git a/crates/typst-pdf/Cargo.toml b/crates/typst-pdf/Cargo.toml
index cdd65e82..64229945 100644
--- a/crates/typst-pdf/Cargo.toml
+++ b/crates/typst-pdf/Cargo.toml
@@ -27,6 +27,7 @@ miniz_oxide = { workspace = true }
once_cell = { workspace = true }
pdf-writer = { workspace = true }
arrayvec = { workspace = true }
+serde = { workspace = true }
subsetter = { workspace = true }
svg2pdf = { workspace = true }
ttf-parser = { workspace = true }
diff --git a/crates/typst-pdf/src/lib.rs b/crates/typst-pdf/src/lib.rs
index 587f66cb..7df77f10 100644
--- a/crates/typst-pdf/src/lib.rs
+++ b/crates/typst-pdf/src/lib.rs
@@ -21,6 +21,7 @@ use std::ops::{Deref, DerefMut};
use base64::Engine;
use pdf_writer::{Chunk, Name, Pdf, Ref, Str, TextStr};
+use serde::{Deserialize, Serialize};
use typst::diag::{bail, SourceResult, StrResult};
use typst::foundations::{Datetime, Smart};
use typst::layout::{Abs, Em, PageRanges, Transform};
@@ -128,16 +129,18 @@ impl Default for PdfStandards {
}
}
-/// A PDF standard.
+/// A PDF standard that Typst can enforce conformance with.
///
/// Support for more standards is planned.
-#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
#[allow(non_camel_case_types)]
#[non_exhaustive]
pub enum PdfStandard {
/// PDF 1.7.
+ #[serde(rename = "1.7")]
V_1_7,
/// PDF/A-2b.
+ #[serde(rename = "a-2b")]
A_2b,
}