Allow parallel compilation of serde and serde_derive

This commit is contained in:
René Kijewski 2025-02-09 04:33:16 +01:00
parent a0e19aa37e
commit b4eb430d3a
7 changed files with 14 additions and 11 deletions

View File

@ -30,7 +30,7 @@ itoa = "1.0.11"
# needed by feature "serde_json" # needed by feature "serde_json"
serde = { version = "1.0", optional = true, default-features = false } serde = { version = "1.0", optional = true, default-features = false }
serde_json = { version = "1.0", optional = true, default-features = false, features = [] } serde_json = { version = "1.0", optional = true, default-features = false }
# needed by feature "urlencode" # needed by feature "urlencode"
percent-encoding = { version = "2.1.0", optional = true, default-features = false } percent-encoding = { version = "2.1.0", optional = true, default-features = false }

View File

@ -21,7 +21,8 @@ parser = { package = "rinja_parser", version = "=0.3.5", path = "../rinja_parser
basic-toml = { version = "0.1.1", optional = true } basic-toml = { version = "0.1.1", optional = true }
pulldown-cmark = { version = "0.12.0", optional = true, default-features = false } pulldown-cmark = { version = "0.12.0", optional = true, default-features = false }
serde = { version = "1.0", optional = true, features = ["derive"] } serde = { version = "1.0", optional = true }
serde_derive = { version = "1.0", optional = true }
memchr = "2" memchr = "2"
quote = { version = "1", default-features = false } quote = { version = "1", default-features = false }
@ -41,7 +42,7 @@ syn = { version = "2.0.3", features = ["full"] }
alloc = [] alloc = []
blocks = ["syn/full"] blocks = ["syn/full"]
code-in-doc = ["dep:pulldown-cmark"] code-in-doc = ["dep:pulldown-cmark"]
config = ["dep:serde", "dep:basic-toml", "parser/config"] config = ["dep:basic-toml", "dep:serde", "dep:serde_derive", "parser/config"]
urlencode = [] urlencode = []
serde_json = [] serde_json = []
std = ["alloc"] std = ["alloc"]

View File

@ -10,7 +10,7 @@ use parser::node::Whitespace;
use parser::{ParseError, Parsed, Syntax, SyntaxBuilder}; use parser::{ParseError, Parsed, Syntax, SyntaxBuilder};
use proc_macro2::Span; use proc_macro2::Span;
#[cfg(feature = "config")] #[cfg(feature = "config")]
use serde::Deserialize; use serde_derive::Deserialize;
use crate::{CompileError, FileInfo, OnceMap}; use crate::{CompileError, FileInfo, OnceMap};
@ -314,7 +314,7 @@ impl RawConfig<'_> {
} }
} }
#[cfg_attr(feature = "config", derive(serde::Deserialize))] #[cfg_attr(feature = "config", derive(Deserialize))]
struct General<'a> { struct General<'a> {
#[cfg_attr(feature = "config", serde(borrow))] #[cfg_attr(feature = "config", serde(borrow))]
dirs: Option<Vec<&'a str>>, dirs: Option<Vec<&'a str>>,

View File

@ -25,7 +25,8 @@ parser = { package = "rinja_parser", version = "=0.3.5", path = "../rinja_parser
basic-toml = { version = "0.1.1", optional = true } basic-toml = { version = "0.1.1", optional = true }
pulldown-cmark = { version = "0.12.0", optional = true, default-features = false } pulldown-cmark = { version = "0.12.0", optional = true, default-features = false }
serde = { version = "1.0", optional = true, features = ["derive"] } serde = { version = "1.0", optional = true }
serde_derive = { version = "1.0", optional = true }
memchr = "2" memchr = "2"
quote = { version = "1", default-features = false } quote = { version = "1", default-features = false }
@ -48,7 +49,7 @@ __standalone = []
blocks = ["syn/full"] blocks = ["syn/full"]
code-in-doc = ["dep:pulldown-cmark"] code-in-doc = ["dep:pulldown-cmark"]
config = ["dep:serde", "dep:basic-toml", "parser/config"] config = ["dep:basic-toml", "dep:serde", "dep:serde_derive", "parser/config"]
urlencode = [] urlencode = []
serde_json = [] serde_json = []

View File

@ -22,11 +22,12 @@ harness = false
[dependencies] [dependencies]
memchr = "2" memchr = "2"
serde = { version = "1.0", optional = true, features = ["derive"] } serde = { version = "1.0", optional = true }
serde_derive = { version = "1.0", optional = true }
winnow = "0.7.0" winnow = "0.7.0"
[dev-dependencies] [dev-dependencies]
criterion = "0.5" criterion = "0.5"
[features] [features]
config = ["dep:serde"] config = ["dep:serde", "dep:serde_derive"]

View File

@ -855,7 +855,7 @@ fn fmt_syntax(name: &str, inner: &InnerSyntax<'_>, f: &mut fmt::Formatter<'_>) -
} }
#[derive(Debug, Default, Clone, Copy, Hash, PartialEq)] #[derive(Debug, Default, Clone, Copy, Hash, PartialEq)]
#[cfg_attr(feature = "config", derive(serde::Deserialize))] #[cfg_attr(feature = "config", derive(serde_derive::Deserialize))]
pub struct SyntaxBuilder<'a> { pub struct SyntaxBuilder<'a> {
pub name: &'a str, pub name: &'a str,
pub block_start: Option<&'a str>, pub block_start: Option<&'a str>,

View File

@ -447,7 +447,7 @@ impl<'a> CondTest<'a> {
} }
#[derive(Clone, Copy, Default, PartialEq, Eq, Debug, Hash)] #[derive(Clone, Copy, Default, PartialEq, Eq, Debug, Hash)]
#[cfg_attr(feature = "config", derive(serde::Deserialize))] #[cfg_attr(feature = "config", derive(serde_derive::Deserialize))]
#[cfg_attr(feature = "config", serde(field_identifier, rename_all = "lowercase"))] #[cfg_attr(feature = "config", serde(field_identifier, rename_all = "lowercase"))]
pub enum Whitespace { pub enum Whitespace {
#[default] #[default]