codegen: Allow compiling serde and serde_derive in parallel

This commit is contained in:
Taiki Endo
2023-10-18 23:22:44 +09:00
parent 56763447c1
commit 9fa9dc1e41
2 changed files with 13 additions and 9 deletions

View File

@@ -10,7 +10,8 @@ flate2 = "1"
fs-err = "2" fs-err = "2"
minisign-verify = "0.2" minisign-verify = "0.2"
semver = { version = "1", features = ["serde"] } semver = { version = "1", features = ["serde"] }
serde = { version = "1", features = ["derive"] } serde = "1"
serde_derive = "1"
serde_json = "1" serde_json = "1"
sha2 = "0.10" sha2 = "0.10"
tar = "0.4" tar = "0.4"

View File

@@ -17,7 +17,11 @@ use std::{
use anyhow::{bail, Context as _, Result}; use anyhow::{bail, Context as _, Result};
use fs_err as fs; use fs_err as fs;
use serde::{Deserialize, Serialize}; use serde::{
de::{self, Deserialize, Deserializer},
ser::{Serialize, Serializer},
};
use serde_derive::{Deserialize, Serialize};
use sha2::{Digest, Sha256}; use sha2::{Digest, Sha256};
fn main() -> Result<()> { fn main() -> Result<()> {
@@ -617,7 +621,7 @@ impl FromStr for Version {
impl Serialize for Version { impl Serialize for Version {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where where
S: serde::Serializer, S: Serializer,
{ {
String::serialize(&self.to_string(), serializer) String::serialize(&self.to_string(), serializer)
} }
@@ -625,10 +629,9 @@ impl Serialize for Version {
impl<'de> Deserialize<'de> for Version { impl<'de> Deserialize<'de> for Version {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where where
D: serde::Deserializer<'de>, D: Deserializer<'de>,
{ {
use serde::de::Error as _; String::deserialize(deserializer)?.parse().map_err(de::Error::custom)
String::deserialize(deserializer)?.parse().map_err(D::Error::custom)
} }
} }
@@ -799,7 +802,7 @@ impl HostPlatform {
} }
mod github { mod github {
use serde::Deserialize; use serde_derive::Deserialize;
// https://api.github.com/repos/<repo>/releases // https://api.github.com/repos/<repo>/releases
pub type Releases = Vec<Release>; pub type Releases = Vec<Release>;
@@ -821,7 +824,7 @@ mod github {
} }
mod crates_io { mod crates_io {
use serde::Deserialize; use serde_derive::Deserialize;
// https://crates.io/api/v1/crates/<crate> // https://crates.io/api/v1/crates/<crate>
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
@@ -839,7 +842,7 @@ mod crates_io {
} }
mod cargo_manifest { mod cargo_manifest {
use serde::Deserialize; use serde_derive::Deserialize;
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
pub struct Manifest { pub struct Manifest {