1use crate::directory::Directory;
2use crate::error::Error;
3use crate::inherit::InheritEdition;
4use crate::manifest::Edition;
5use serde::de::value::MapAccessDeserializer;
6use serde::de::value::StrDeserializer;
7use serde::de::{self, Deserialize, Deserializer, Visitor};
8use serde::ser::{Serialize, Serializer};
9use serde_derive::{Deserialize, Serialize};
10use serde_json::Value;
11use std::collections::BTreeMap as Map;
12use std::fmt;
13use std::fs;
14use std::path::PathBuf;
15
16pub fn get_manifest(manifest_dir: &Directory) -> Result<Manifest, Error> {
17 let cargo_toml_path = manifest_dir.join("Cargo.toml");
18 let mut manifest = (|| {
19 let manifest_str = fs::read_to_string(&cargo_toml_path)?;
20 let manifest: Manifest = toml::from_str(&manifest_str)?;
21 Ok(manifest)
22 })()
23 .map_err(|err| Error::GetManifest(cargo_toml_path, Box::new(err)))?;
24
25 fix_dependencies(&mut manifest.dependencies, manifest_dir);
26 fix_dependencies(&mut manifest.dev_dependencies, manifest_dir);
27 for target in manifest.target.values_mut() {
28 fix_dependencies(&mut target.dependencies, manifest_dir);
29 fix_dependencies(&mut target.dev_dependencies, manifest_dir);
30 }
31
32 Ok(manifest)
33}
34
35pub fn get_workspace_manifest(manifest_dir: &Directory) -> WorkspaceManifest {
36 try_get_workspace_manifest(manifest_dir).unwrap_or_default()
37}
38
39pub fn try_get_workspace_manifest(
40 manifest_dir: &Directory,
41) -> Result<WorkspaceManifest, Error> {
42 let cargo_toml_path = manifest_dir.join("Cargo.toml");
43 let manifest_str = fs::read_to_string(cargo_toml_path)?;
44 let mut manifest: WorkspaceManifest = toml::from_str(&manifest_str)?;
45
46 fix_dependencies(&mut manifest.workspace.dependencies, manifest_dir);
47 fix_patches(&mut manifest.patch, manifest_dir);
48 fix_replacements(&mut manifest.replace, manifest_dir);
49
50 Ok(manifest)
51}
52
53fn fix_dependencies(dependencies: &mut Map<String, Dependency>, dir: &Directory) {
54 dependencies.remove("trybuild");
55 for dep in dependencies.values_mut() {
56 dep.path = dep.path.as_ref().map(|path| Directory::new(dir.join(path)));
57 }
58}
59
60fn fix_patches(patches: &mut Map<String, RegistryPatch>, dir: &Directory) {
61 for registry in patches.values_mut() {
62 registry.crates.remove("trybuild");
63 for patch in registry.crates.values_mut() {
64 patch.path = patch.path.as_ref().map(|path| dir.join(path));
65 }
66 }
67}
68
69fn fix_replacements(replacements: &mut Map<String, Patch>, dir: &Directory) {
70 replacements.remove("trybuild");
71 for replacement in replacements.values_mut() {
72 replacement.path = replacement.path.as_ref().map(|path| dir.join(path));
73 }
74}
75
76#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for WorkspaceManifest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field {
__field0,
__field1,
__field2,
__field3,
__ignore,
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
1u64 => _serde::__private228::Ok(__Field::__field1),
2u64 => _serde::__private228::Ok(__Field::__field2),
3u64 => _serde::__private228::Ok(__Field::__field3),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"workspace" => _serde::__private228::Ok(__Field::__field0),
"patch" => _serde::__private228::Ok(__Field::__field1),
"replace" => _serde::__private228::Ok(__Field::__field2),
"profile" => _serde::__private228::Ok(__Field::__field3),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"workspace" => _serde::__private228::Ok(__Field::__field0),
b"patch" => _serde::__private228::Ok(__Field::__field1),
b"replace" => _serde::__private228::Ok(__Field::__field2),
b"profile" => _serde::__private228::Ok(__Field::__field3),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<WorkspaceManifest>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = WorkspaceManifest;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct WorkspaceManifest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<WorkspaceWorkspace>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Map<String,
RegistryPatch>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<Map<String,
Patch>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field3 =
match _serde::de::SeqAccess::next_element::<Map<String,
Value>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(WorkspaceManifest {
workspace: __field0,
patch: __field1,
replace: __field2,
profile: __field3,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<WorkspaceWorkspace> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<Map<String, RegistryPatch>> =
_serde::__private228::None;
let mut __field2:
_serde::__private228::Option<Map<String, Patch>> =
_serde::__private228::None;
let mut __field3:
_serde::__private228::Option<Map<String, Value>> =
_serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("workspace"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<WorkspaceWorkspace>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("patch"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
RegistryPatch>>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private228::Option::is_some(&__field2) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("replace"));
}
__field2 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Patch>>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private228::Option::is_some(&__field3) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("profile"));
}
__field3 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Value>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match __field2 {
_serde::__private228::Some(__field2) => __field2,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field3 =
match __field3 {
_serde::__private228::Some(__field3) => __field3,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(WorkspaceManifest {
workspace: __field0,
patch: __field1,
replace: __field2,
profile: __field3,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["workspace", "patch", "replace", "profile"];
_serde::Deserializer::deserialize_struct(__deserializer,
"WorkspaceManifest", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<WorkspaceManifest>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::default::Default for WorkspaceManifest {
#[inline]
fn default() -> WorkspaceManifest {
WorkspaceManifest {
workspace: ::core::default::Default::default(),
patch: ::core::default::Default::default(),
replace: ::core::default::Default::default(),
profile: ::core::default::Default::default(),
}
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for WorkspaceManifest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field4_finish(f,
"WorkspaceManifest", "workspace", &self.workspace, "patch",
&self.patch, "replace", &self.replace, "profile", &&self.profile)
}
}Debug)]
77pub struct WorkspaceManifest {
78 #[serde(default)]
79 pub workspace: WorkspaceWorkspace,
80 #[serde(default)]
81 pub patch: Map<String, RegistryPatch>,
82 #[serde(default)]
83 pub replace: Map<String, Patch>,
84 #[serde(default)]
85 pub profile: Map<String, Value>,
86}
87
88#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for WorkspaceWorkspace {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
1u64 => _serde::__private228::Ok(__Field::__field1),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"package" => _serde::__private228::Ok(__Field::__field0),
"dependencies" =>
_serde::__private228::Ok(__Field::__field1),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"package" => _serde::__private228::Ok(__Field::__field0),
b"dependencies" =>
_serde::__private228::Ok(__Field::__field1),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<WorkspaceWorkspace>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = WorkspaceWorkspace;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct WorkspaceWorkspace")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<WorkspacePackage>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Map<String,
Dependency>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(WorkspaceWorkspace {
package: __field0,
dependencies: __field1,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<WorkspacePackage> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<Map<String, Dependency>> =
_serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("package"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<WorkspacePackage>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("dependencies"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Dependency>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(WorkspaceWorkspace {
package: __field0,
dependencies: __field1,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["package", "dependencies"];
_serde::Deserializer::deserialize_struct(__deserializer,
"WorkspaceWorkspace", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<WorkspaceWorkspace>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::default::Default for WorkspaceWorkspace {
#[inline]
fn default() -> WorkspaceWorkspace {
WorkspaceWorkspace {
package: ::core::default::Default::default(),
dependencies: ::core::default::Default::default(),
}
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for WorkspaceWorkspace {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"WorkspaceWorkspace", "package", &self.package, "dependencies",
&&self.dependencies)
}
}Debug)]
89pub struct WorkspaceWorkspace {
90 #[serde(default)]
91 pub package: WorkspacePackage,
92 #[serde(default)]
93 pub dependencies: Map<String, Dependency>,
94}
95
96#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for WorkspacePackage {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"edition" => _serde::__private228::Ok(__Field::__field0),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"edition" => _serde::__private228::Ok(__Field::__field0),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<WorkspacePackage>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = WorkspacePackage;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct WorkspacePackage")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Option<Edition>>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
return _serde::__private228::Err(_serde::de::Error::invalid_length(0usize,
&"struct WorkspacePackage with 1 element")),
};
_serde::__private228::Ok(WorkspacePackage {
edition: __field0,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<Option<Edition>> =
_serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("edition"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<Edition>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::de::missing_field("edition")?,
};
_serde::__private228::Ok(WorkspacePackage {
edition: __field0,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] = &["edition"];
_serde::Deserializer::deserialize_struct(__deserializer,
"WorkspacePackage", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<WorkspacePackage>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::default::Default for WorkspacePackage {
#[inline]
fn default() -> WorkspacePackage {
WorkspacePackage { edition: ::core::default::Default::default() }
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for WorkspacePackage {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field1_finish(f,
"WorkspacePackage", "edition", &&self.edition)
}
}Debug)]
97pub struct WorkspacePackage {
98 pub edition: Option<Edition>,
99}
100
101#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for Manifest {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field {
__field0,
__field1,
__field2,
__field3,
__field4,
__field5,
__ignore,
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
1u64 => _serde::__private228::Ok(__Field::__field1),
2u64 => _serde::__private228::Ok(__Field::__field2),
3u64 => _serde::__private228::Ok(__Field::__field3),
4u64 => _serde::__private228::Ok(__Field::__field4),
5u64 => _serde::__private228::Ok(__Field::__field5),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"cargo-features" =>
_serde::__private228::Ok(__Field::__field0),
"package" => _serde::__private228::Ok(__Field::__field1),
"features" => _serde::__private228::Ok(__Field::__field2),
"dependencies" =>
_serde::__private228::Ok(__Field::__field3),
"dev-dependencies" =>
_serde::__private228::Ok(__Field::__field4),
"dev_dependencies" =>
_serde::__private228::Ok(__Field::__field4),
"target" => _serde::__private228::Ok(__Field::__field5),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"cargo-features" =>
_serde::__private228::Ok(__Field::__field0),
b"package" => _serde::__private228::Ok(__Field::__field1),
b"features" => _serde::__private228::Ok(__Field::__field2),
b"dependencies" =>
_serde::__private228::Ok(__Field::__field3),
b"dev-dependencies" =>
_serde::__private228::Ok(__Field::__field4),
b"dev_dependencies" =>
_serde::__private228::Ok(__Field::__field4),
b"target" => _serde::__private228::Ok(__Field::__field5),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<Manifest>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = Manifest;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct Manifest")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Vec<String>>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Package>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<Map<String,
Vec<String>>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field3 =
match _serde::de::SeqAccess::next_element::<Map<String,
Dependency>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field4 =
match _serde::de::SeqAccess::next_element::<Map<String,
Dependency>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field5 =
match _serde::de::SeqAccess::next_element::<Map<String,
TargetDependencies>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(Manifest {
cargo_features: __field0,
package: __field1,
features: __field2,
dependencies: __field3,
dev_dependencies: __field4,
target: __field5,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<Vec<String>> =
_serde::__private228::None;
let mut __field1: _serde::__private228::Option<Package> =
_serde::__private228::None;
let mut __field2:
_serde::__private228::Option<Map<String, Vec<String>>> =
_serde::__private228::None;
let mut __field3:
_serde::__private228::Option<Map<String, Dependency>> =
_serde::__private228::None;
let mut __field4:
_serde::__private228::Option<Map<String, Dependency>> =
_serde::__private228::None;
let mut __field5:
_serde::__private228::Option<Map<String,
TargetDependencies>> = _serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("cargo-features"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Vec<String>>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("package"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Package>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private228::Option::is_some(&__field2) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("features"));
}
__field2 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Vec<String>>>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private228::Option::is_some(&__field3) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("dependencies"));
}
__field3 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Dependency>>(&mut __map)?);
}
__Field::__field4 => {
if _serde::__private228::Option::is_some(&__field4) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("dev_dependencies"));
}
__field4 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Dependency>>(&mut __map)?);
}
__Field::__field5 => {
if _serde::__private228::Option::is_some(&__field5) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("target"));
}
__field5 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
TargetDependencies>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match __field2 {
_serde::__private228::Some(__field2) => __field2,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field3 =
match __field3 {
_serde::__private228::Some(__field3) => __field3,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field4 =
match __field4 {
_serde::__private228::Some(__field4) => __field4,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field5 =
match __field5 {
_serde::__private228::Some(__field5) => __field5,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(Manifest {
cargo_features: __field0,
package: __field1,
features: __field2,
dependencies: __field3,
dev_dependencies: __field4,
target: __field5,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["cargo-features", "package", "features", "dependencies",
"dev-dependencies", "dev_dependencies", "target"];
_serde::Deserializer::deserialize_struct(__deserializer,
"Manifest", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<Manifest>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::default::Default for Manifest {
#[inline]
fn default() -> Manifest {
Manifest {
cargo_features: ::core::default::Default::default(),
package: ::core::default::Default::default(),
features: ::core::default::Default::default(),
dependencies: ::core::default::Default::default(),
dev_dependencies: ::core::default::Default::default(),
target: ::core::default::Default::default(),
}
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for Manifest {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["cargo_features", "package", "features", "dependencies",
"dev_dependencies", "target"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.cargo_features, &self.package, &self.features,
&self.dependencies, &self.dev_dependencies, &&self.target];
::core::fmt::Formatter::debug_struct_fields_finish(f, "Manifest",
names, values)
}
}Debug)]
102pub struct Manifest {
103 #[serde(rename = "cargo-features", default)]
104 pub cargo_features: Vec<String>,
105 #[serde(default)]
106 pub package: Package,
107 #[serde(default)]
108 pub features: Map<String, Vec<String>>,
109 #[serde(default)]
110 pub dependencies: Map<String, Dependency>,
111 #[serde(default, alias = "dev-dependencies")]
112 pub dev_dependencies: Map<String, Dependency>,
113 #[serde(default)]
114 pub target: Map<String, TargetDependencies>,
115}
116
117#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for Package {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __field2, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
1u64 => _serde::__private228::Ok(__Field::__field1),
2u64 => _serde::__private228::Ok(__Field::__field2),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"name" => _serde::__private228::Ok(__Field::__field0),
"edition" => _serde::__private228::Ok(__Field::__field1),
"resolver" => _serde::__private228::Ok(__Field::__field2),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"name" => _serde::__private228::Ok(__Field::__field0),
b"edition" => _serde::__private228::Ok(__Field::__field1),
b"resolver" => _serde::__private228::Ok(__Field::__field2),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<Package>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = Package;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct Package")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<String>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
return _serde::__private228::Err(_serde::de::Error::invalid_length(0usize,
&"struct Package with 3 elements")),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<EditionOrInherit>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match _serde::de::SeqAccess::next_element::<Option<String>>(&mut __seq)?
{
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
return _serde::__private228::Err(_serde::de::Error::invalid_length(2usize,
&"struct Package with 3 elements")),
};
_serde::__private228::Ok(Package {
name: __field0,
edition: __field1,
resolver: __field2,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0: _serde::__private228::Option<String> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<EditionOrInherit> =
_serde::__private228::None;
let mut __field2:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("name"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<String>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("edition"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<EditionOrInherit>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private228::Option::is_some(&__field2) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("resolver"));
}
__field2 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::de::missing_field("name")?,
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field2 =
match __field2 {
_serde::__private228::Some(__field2) => __field2,
_serde::__private228::None =>
_serde::__private228::de::missing_field("resolver")?,
};
_serde::__private228::Ok(Package {
name: __field0,
edition: __field1,
resolver: __field2,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["name", "edition", "resolver"];
_serde::Deserializer::deserialize_struct(__deserializer,
"Package", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<Package>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::default::Default for Package {
#[inline]
fn default() -> Package {
Package {
name: ::core::default::Default::default(),
edition: ::core::default::Default::default(),
resolver: ::core::default::Default::default(),
}
}
}Default, #[automatically_derived]
impl ::core::fmt::Debug for Package {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f, "Package",
"name", &self.name, "edition", &self.edition, "resolver",
&&self.resolver)
}
}Debug)]
118pub struct Package {
119 pub name: String,
120 #[serde(default)]
121 pub edition: EditionOrInherit,
122 pub resolver: Option<String>,
123}
124
125#[derive(#[automatically_derived]
impl ::core::fmt::Debug for EditionOrInherit {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
EditionOrInherit::Edition(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Edition", &__self_0),
EditionOrInherit::Inherit =>
::core::fmt::Formatter::write_str(f, "Inherit"),
}
}
}Debug)]
126pub enum EditionOrInherit {
127 Edition(Edition),
128 Inherit,
129}
130
131#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl Dependency {
pub fn serialize<__S>(__self: &Dependency, __serializer: __S)
-> _serde::__private228::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
match _serde::__private228::None::<&Dependency> {
_serde::__private228::Some(Dependency {
version: __v0,
path: __v1,
optional: __v2,
default_features: __v3,
features: __v4,
git: __v5,
branch: __v6,
tag: __v7,
rev: __v8,
workspace: __v9,
rest: __v10 }) => {}
_ => {}
}
let mut __serde_state =
_serde::Serializer::serialize_map(__serializer,
_serde::__private228::None)?;
if !Option::is_none(_serde::__private228::ser::constrain::<Option<String>>(&__self.version))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"version",
_serde::__private228::ser::constrain::<Option<String>>(&__self.version))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<Directory>>(&__self.path))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"path",
_serde::__private228::ser::constrain::<Option<Directory>>(&__self.path))?;
}
if !is_false(_serde::__private228::ser::constrain::<bool>(&__self.optional))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"optional",
_serde::__private228::ser::constrain::<bool>(&__self.optional))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<bool>>(&__self.default_features))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"default-features",
_serde::__private228::ser::constrain::<Option<bool>>(&__self.default_features))?;
}
if !Vec::is_empty(_serde::__private228::ser::constrain::<Vec<String>>(&__self.features))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"features",
_serde::__private228::ser::constrain::<Vec<String>>(&__self.features))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<String>>(&__self.git))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"git",
_serde::__private228::ser::constrain::<Option<String>>(&__self.git))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<String>>(&__self.branch))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"branch",
_serde::__private228::ser::constrain::<Option<String>>(&__self.branch))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<String>>(&__self.tag))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"tag",
_serde::__private228::ser::constrain::<Option<String>>(&__self.tag))?;
}
if !Option::is_none(_serde::__private228::ser::constrain::<Option<String>>(&__self.rev))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"rev",
_serde::__private228::ser::constrain::<Option<String>>(&__self.rev))?;
}
if !is_false(_serde::__private228::ser::constrain::<bool>(&__self.workspace))
{
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"workspace",
_serde::__private228::ser::constrain::<bool>(&__self.workspace))?;
}
_serde::Serialize::serialize(&_serde::__private228::ser::constrain::<Map<String,
Value>>(&__self.rest),
_serde::__private228::ser::FlatMapSerializer(&mut __serde_state))?;
_serde::ser::SerializeMap::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> Dependency {
pub fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Dependency, __D::Error> where
__D: _serde::Deserializer<'de> {
match _serde::__private228::None::<&Dependency> {
_serde::__private228::Some(Dependency {
version: __v0,
path: __v1,
optional: __v2,
default_features: __v3,
features: __v4,
git: __v5,
branch: __v6,
tag: __v7,
rev: __v8,
workspace: __v9,
rest: __v10 }) => {}
_ => {}
}
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field<'de> {
__field0,
__field1,
__field2,
__field3,
__field4,
__field5,
__field6,
__field7,
__field8,
__field9,
__other(_serde::__private228::de::Content<'de>),
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field<'de>;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_bool<__E>(self, __value: bool)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Bool(__value)))
}
fn visit_i8<__E>(self, __value: i8)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I8(__value)))
}
fn visit_i16<__E>(self, __value: i16)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I16(__value)))
}
fn visit_i32<__E>(self, __value: i32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I32(__value)))
}
fn visit_i64<__E>(self, __value: i64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I64(__value)))
}
fn visit_u8<__E>(self, __value: u8)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U8(__value)))
}
fn visit_u16<__E>(self, __value: u16)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U16(__value)))
}
fn visit_u32<__E>(self, __value: u32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U32(__value)))
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U64(__value)))
}
fn visit_f32<__E>(self, __value: f32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::F32(__value)))
}
fn visit_f64<__E>(self, __value: f64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::F64(__value)))
}
fn visit_char<__E>(self, __value: char)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Char(__value)))
}
fn visit_unit<__E>(self)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Unit))
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"version" => _serde::__private228::Ok(__Field::__field0),
"path" => _serde::__private228::Ok(__Field::__field1),
"optional" => _serde::__private228::Ok(__Field::__field2),
"default-features" =>
_serde::__private228::Ok(__Field::__field3),
"features" => _serde::__private228::Ok(__Field::__field4),
"git" => _serde::__private228::Ok(__Field::__field5),
"branch" => _serde::__private228::Ok(__Field::__field6),
"tag" => _serde::__private228::Ok(__Field::__field7),
"rev" => _serde::__private228::Ok(__Field::__field8),
"workspace" => _serde::__private228::Ok(__Field::__field9),
_ => {
let __value =
_serde::__private228::de::Content::String(_serde::__private228::ToString::to_string(__value));
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"version" => _serde::__private228::Ok(__Field::__field0),
b"path" => _serde::__private228::Ok(__Field::__field1),
b"optional" => _serde::__private228::Ok(__Field::__field2),
b"default-features" =>
_serde::__private228::Ok(__Field::__field3),
b"features" => _serde::__private228::Ok(__Field::__field4),
b"git" => _serde::__private228::Ok(__Field::__field5),
b"branch" => _serde::__private228::Ok(__Field::__field6),
b"tag" => _serde::__private228::Ok(__Field::__field7),
b"rev" => _serde::__private228::Ok(__Field::__field8),
b"workspace" => _serde::__private228::Ok(__Field::__field9),
_ => {
let __value =
_serde::__private228::de::Content::ByteBuf(__value.to_vec());
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_borrowed_str<__E>(self, __value: &'de str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"version" => _serde::__private228::Ok(__Field::__field0),
"path" => _serde::__private228::Ok(__Field::__field1),
"optional" => _serde::__private228::Ok(__Field::__field2),
"default-features" =>
_serde::__private228::Ok(__Field::__field3),
"features" => _serde::__private228::Ok(__Field::__field4),
"git" => _serde::__private228::Ok(__Field::__field5),
"branch" => _serde::__private228::Ok(__Field::__field6),
"tag" => _serde::__private228::Ok(__Field::__field7),
"rev" => _serde::__private228::Ok(__Field::__field8),
"workspace" => _serde::__private228::Ok(__Field::__field9),
_ => {
let __value =
_serde::__private228::de::Content::Str(__value);
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_borrowed_bytes<__E>(self, __value: &'de [u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"version" => _serde::__private228::Ok(__Field::__field0),
b"path" => _serde::__private228::Ok(__Field::__field1),
b"optional" => _serde::__private228::Ok(__Field::__field2),
b"default-features" =>
_serde::__private228::Ok(__Field::__field3),
b"features" => _serde::__private228::Ok(__Field::__field4),
b"git" => _serde::__private228::Ok(__Field::__field5),
b"branch" => _serde::__private228::Ok(__Field::__field6),
b"tag" => _serde::__private228::Ok(__Field::__field7),
b"rev" => _serde::__private228::Ok(__Field::__field8),
b"workspace" => _serde::__private228::Ok(__Field::__field9),
_ => {
let __value =
_serde::__private228::de::Content::Bytes(__value);
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field<'de> {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<Dependency>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = Dependency;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct Dependency")
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<Option<Directory>> =
_serde::__private228::None;
let mut __field2: _serde::__private228::Option<bool> =
_serde::__private228::None;
let mut __field3:
_serde::__private228::Option<Option<bool>> =
_serde::__private228::None;
let mut __field4:
_serde::__private228::Option<Vec<String>> =
_serde::__private228::None;
let mut __field5:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field6:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field7:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field8:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field9: _serde::__private228::Option<bool> =
_serde::__private228::None;
let mut __collect =
_serde::__private228::Vec::<_serde::__private228::Option<(_serde::__private228::de::Content,
_serde::__private228::de::Content)>>::new();
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("version"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("path"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<Directory>>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private228::Option::is_some(&__field2) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("optional"));
}
__field2 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<bool>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private228::Option::is_some(&__field3) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("default-features"));
}
__field3 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<bool>>(&mut __map)?);
}
__Field::__field4 => {
if _serde::__private228::Option::is_some(&__field4) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("features"));
}
__field4 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Vec<String>>(&mut __map)?);
}
__Field::__field5 => {
if _serde::__private228::Option::is_some(&__field5) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("git"));
}
__field5 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field6 => {
if _serde::__private228::Option::is_some(&__field6) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("branch"));
}
__field6 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field7 => {
if _serde::__private228::Option::is_some(&__field7) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("tag"));
}
__field7 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field8 => {
if _serde::__private228::Option::is_some(&__field8) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("rev"));
}
__field8 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field9 => {
if _serde::__private228::Option::is_some(&__field9) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("workspace"));
}
__field9 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<bool>(&mut __map)?);
}
__Field::__other(__name) => {
__collect.push(_serde::__private228::Some((__name,
_serde::de::MapAccess::next_value_seed(&mut __map,
_serde::__private228::de::ContentVisitor::new())?)));
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::de::missing_field("version")?,
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::de::missing_field("path")?,
};
let __field2 =
match __field2 {
_serde::__private228::Some(__field2) => __field2,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field3 =
match __field3 {
_serde::__private228::Some(__field3) => __field3,
_serde::__private228::None =>
_serde::__private228::de::missing_field("default-features")?,
};
let __field4 =
match __field4 {
_serde::__private228::Some(__field4) => __field4,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field5 =
match __field5 {
_serde::__private228::Some(__field5) => __field5,
_serde::__private228::None =>
_serde::__private228::de::missing_field("git")?,
};
let __field6 =
match __field6 {
_serde::__private228::Some(__field6) => __field6,
_serde::__private228::None =>
_serde::__private228::de::missing_field("branch")?,
};
let __field7 =
match __field7 {
_serde::__private228::Some(__field7) => __field7,
_serde::__private228::None =>
_serde::__private228::de::missing_field("tag")?,
};
let __field8 =
match __field8 {
_serde::__private228::Some(__field8) => __field8,
_serde::__private228::None =>
_serde::__private228::de::missing_field("rev")?,
};
let __field9 =
match __field9 {
_serde::__private228::Some(__field9) => __field9,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field10: Map<String, Value> =
_serde::de::Deserialize::deserialize(_serde::__private228::de::FlatMapDeserializer(&mut __collect,
_serde::__private228::PhantomData))?;
_serde::__private228::Ok(Dependency {
version: __field0,
path: __field1,
optional: __field2,
default_features: __field3,
features: __field4,
git: __field5,
branch: __field6,
tag: __field7,
rev: __field8,
workspace: __field9,
rest: __field10,
})
}
}
_serde::Deserializer::deserialize_map(__deserializer,
__Visitor {
marker: _serde::__private228::PhantomData::<Dependency>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::clone::Clone for Dependency {
#[inline]
fn clone(&self) -> Dependency {
Dependency {
version: ::core::clone::Clone::clone(&self.version),
path: ::core::clone::Clone::clone(&self.path),
optional: ::core::clone::Clone::clone(&self.optional),
default_features: ::core::clone::Clone::clone(&self.default_features),
features: ::core::clone::Clone::clone(&self.features),
git: ::core::clone::Clone::clone(&self.git),
branch: ::core::clone::Clone::clone(&self.branch),
tag: ::core::clone::Clone::clone(&self.tag),
rev: ::core::clone::Clone::clone(&self.rev),
workspace: ::core::clone::Clone::clone(&self.workspace),
rest: ::core::clone::Clone::clone(&self.rest),
}
}
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for Dependency {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["version", "path", "optional", "default_features", "features",
"git", "branch", "tag", "rev", "workspace", "rest"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.version, &self.path, &self.optional,
&self.default_features, &self.features, &self.git,
&self.branch, &self.tag, &self.rev, &self.workspace,
&&self.rest];
::core::fmt::Formatter::debug_struct_fields_finish(f, "Dependency",
names, values)
}
}Debug)]
132#[serde(remote = "Self")]
133pub struct Dependency {
134 #[serde(skip_serializing_if = "Option::is_none")]
135 pub version: Option<String>,
136 #[serde(skip_serializing_if = "Option::is_none")]
137 pub path: Option<Directory>,
138 #[serde(default, skip_serializing_if = "is_false")]
139 pub optional: bool,
140 #[serde(rename = "default-features", skip_serializing_if = "Option::is_none")]
141 pub default_features: Option<bool>,
142 #[serde(default, skip_serializing_if = "Vec::is_empty")]
143 pub features: Vec<String>,
144 #[serde(skip_serializing_if = "Option::is_none")]
145 pub git: Option<String>,
146 #[serde(skip_serializing_if = "Option::is_none")]
147 pub branch: Option<String>,
148 #[serde(skip_serializing_if = "Option::is_none")]
149 pub tag: Option<String>,
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub rev: Option<String>,
152 #[serde(default, skip_serializing_if = "is_false")]
153 pub workspace: bool,
154 #[serde(flatten)]
155 pub rest: Map<String, Value>,
156}
157
158#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for TargetDependencies {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private228::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_struct(__serializer,
"TargetDependencies",
false as usize +
if Map::is_empty(&self.dependencies) { 0 } else { 1 } +
if Map::is_empty(&self.dev_dependencies) { 0 } else { 1 })?;
if !Map::is_empty(&self.dependencies) {
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"dependencies", &self.dependencies)?;
} else {
_serde::ser::SerializeStruct::skip_field(&mut __serde_state,
"dependencies")?;
}
if !Map::is_empty(&self.dev_dependencies) {
_serde::ser::SerializeStruct::serialize_field(&mut __serde_state,
"dev_dependencies", &self.dev_dependencies)?;
} else {
_serde::ser::SerializeStruct::skip_field(&mut __serde_state,
"dev_dependencies")?;
}
_serde::ser::SerializeStruct::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for TargetDependencies {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field { __field0, __field1, __ignore, }
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
0u64 => _serde::__private228::Ok(__Field::__field0),
1u64 => _serde::__private228::Ok(__Field::__field1),
_ => _serde::__private228::Ok(__Field::__ignore),
}
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"dependencies" =>
_serde::__private228::Ok(__Field::__field0),
"dev-dependencies" =>
_serde::__private228::Ok(__Field::__field1),
"dev_dependencies" =>
_serde::__private228::Ok(__Field::__field1),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"dependencies" =>
_serde::__private228::Ok(__Field::__field0),
b"dev-dependencies" =>
_serde::__private228::Ok(__Field::__field1),
b"dev_dependencies" =>
_serde::__private228::Ok(__Field::__field1),
_ => { _serde::__private228::Ok(__Field::__ignore) }
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<TargetDependencies>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = TargetDependencies;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct TargetDependencies")
}
#[inline]
fn visit_seq<__A>(self, mut __seq: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::SeqAccess<'de> {
let __field0 =
match _serde::de::SeqAccess::next_element::<Map<String,
Dependency>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match _serde::de::SeqAccess::next_element::<Map<String,
Dependency>>(&mut __seq)? {
_serde::__private228::Some(__value) => __value,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(TargetDependencies {
dependencies: __field0,
dev_dependencies: __field1,
})
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<Map<String, Dependency>> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<Map<String, Dependency>> =
_serde::__private228::None;
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("dependencies"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Dependency>>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("dev_dependencies"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Map<String,
Dependency>>(&mut __map)?);
}
_ => {
let _ =
_serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map)?;
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::Default::default(),
};
_serde::__private228::Ok(TargetDependencies {
dependencies: __field0,
dev_dependencies: __field1,
})
}
}
#[doc(hidden)]
const FIELDS: &'static [&'static str] =
&["dependencies", "dev-dependencies", "dev_dependencies"];
_serde::Deserializer::deserialize_struct(__deserializer,
"TargetDependencies", FIELDS,
__Visitor {
marker: _serde::__private228::PhantomData::<TargetDependencies>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::clone::Clone for TargetDependencies {
#[inline]
fn clone(&self) -> TargetDependencies {
TargetDependencies {
dependencies: ::core::clone::Clone::clone(&self.dependencies),
dev_dependencies: ::core::clone::Clone::clone(&self.dev_dependencies),
}
}
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for TargetDependencies {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"TargetDependencies", "dependencies", &self.dependencies,
"dev_dependencies", &&self.dev_dependencies)
}
}Debug)]
159pub struct TargetDependencies {
160 #[serde(default, skip_serializing_if = "Map::is_empty")]
161 pub dependencies: Map<String, Dependency>,
162 #[serde(
163 default,
164 alias = "dev-dependencies",
165 skip_serializing_if = "Map::is_empty"
166 )]
167 pub dev_dependencies: Map<String, Dependency>,
168}
169
170#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for RegistryPatch {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private228::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
_serde::Serialize::serialize(&self.crates, __serializer)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for RegistryPatch {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::__private228::Result::map(_serde::Deserialize::deserialize(__deserializer),
|__transparent| RegistryPatch { crates: __transparent })
}
}
};Deserialize, #[automatically_derived]
impl ::core::clone::Clone for RegistryPatch {
#[inline]
fn clone(&self) -> RegistryPatch {
RegistryPatch { crates: ::core::clone::Clone::clone(&self.crates) }
}
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for RegistryPatch {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field1_finish(f, "RegistryPatch",
"crates", &&self.crates)
}
}Debug)]
171#[serde(transparent)]
172pub struct RegistryPatch {
173 pub crates: Map<String, Patch>,
174}
175
176#[derive(#[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl _serde::Serialize for Patch {
fn serialize<__S>(&self, __serializer: __S)
-> _serde::__private228::Result<__S::Ok, __S::Error> where
__S: _serde::Serializer {
let mut __serde_state =
_serde::Serializer::serialize_map(__serializer,
_serde::__private228::None)?;
if !Option::is_none(&self.path) {
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"path", &self.path)?;
}
if !Option::is_none(&self.git) {
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"git", &self.git)?;
}
if !Option::is_none(&self.branch) {
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"branch", &self.branch)?;
}
if !Option::is_none(&self.tag) {
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"tag", &self.tag)?;
}
if !Option::is_none(&self.rev) {
_serde::ser::SerializeMap::serialize_entry(&mut __serde_state,
"rev", &self.rev)?;
}
_serde::Serialize::serialize(&&self.rest,
_serde::__private228::ser::FlatMapSerializer(&mut __serde_state))?;
_serde::ser::SerializeMap::end(__serde_state)
}
}
};Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
{
#[allow(unused_extern_crates, clippy :: useless_attribute)]
extern crate serde as _serde;
;
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for Patch {
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
#[allow(non_camel_case_types)]
#[doc(hidden)]
enum __Field<'de> {
__field0,
__field1,
__field2,
__field3,
__field4,
__other(_serde::__private228::de::Content<'de>),
}
#[doc(hidden)]
struct __FieldVisitor;
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
type Value = __Field<'de>;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"field identifier")
}
fn visit_bool<__E>(self, __value: bool)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Bool(__value)))
}
fn visit_i8<__E>(self, __value: i8)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I8(__value)))
}
fn visit_i16<__E>(self, __value: i16)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I16(__value)))
}
fn visit_i32<__E>(self, __value: i32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I32(__value)))
}
fn visit_i64<__E>(self, __value: i64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::I64(__value)))
}
fn visit_u8<__E>(self, __value: u8)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U8(__value)))
}
fn visit_u16<__E>(self, __value: u16)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U16(__value)))
}
fn visit_u32<__E>(self, __value: u32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U32(__value)))
}
fn visit_u64<__E>(self, __value: u64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::U64(__value)))
}
fn visit_f32<__E>(self, __value: f32)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::F32(__value)))
}
fn visit_f64<__E>(self, __value: f64)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::F64(__value)))
}
fn visit_char<__E>(self, __value: char)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Char(__value)))
}
fn visit_unit<__E>(self)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
_serde::__private228::Ok(__Field::__other(_serde::__private228::de::Content::Unit))
}
fn visit_str<__E>(self, __value: &str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"path" => _serde::__private228::Ok(__Field::__field0),
"git" => _serde::__private228::Ok(__Field::__field1),
"branch" => _serde::__private228::Ok(__Field::__field2),
"tag" => _serde::__private228::Ok(__Field::__field3),
"rev" => _serde::__private228::Ok(__Field::__field4),
_ => {
let __value =
_serde::__private228::de::Content::String(_serde::__private228::ToString::to_string(__value));
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_bytes<__E>(self, __value: &[u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"path" => _serde::__private228::Ok(__Field::__field0),
b"git" => _serde::__private228::Ok(__Field::__field1),
b"branch" => _serde::__private228::Ok(__Field::__field2),
b"tag" => _serde::__private228::Ok(__Field::__field3),
b"rev" => _serde::__private228::Ok(__Field::__field4),
_ => {
let __value =
_serde::__private228::de::Content::ByteBuf(__value.to_vec());
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_borrowed_str<__E>(self, __value: &'de str)
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
"path" => _serde::__private228::Ok(__Field::__field0),
"git" => _serde::__private228::Ok(__Field::__field1),
"branch" => _serde::__private228::Ok(__Field::__field2),
"tag" => _serde::__private228::Ok(__Field::__field3),
"rev" => _serde::__private228::Ok(__Field::__field4),
_ => {
let __value =
_serde::__private228::de::Content::Str(__value);
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
fn visit_borrowed_bytes<__E>(self, __value: &'de [u8])
-> _serde::__private228::Result<Self::Value, __E> where
__E: _serde::de::Error {
match __value {
b"path" => _serde::__private228::Ok(__Field::__field0),
b"git" => _serde::__private228::Ok(__Field::__field1),
b"branch" => _serde::__private228::Ok(__Field::__field2),
b"tag" => _serde::__private228::Ok(__Field::__field3),
b"rev" => _serde::__private228::Ok(__Field::__field4),
_ => {
let __value =
_serde::__private228::de::Content::Bytes(__value);
_serde::__private228::Ok(__Field::__other(__value))
}
}
}
}
#[automatically_derived]
impl<'de> _serde::Deserialize<'de> for __Field<'de> {
#[inline]
fn deserialize<__D>(__deserializer: __D)
-> _serde::__private228::Result<Self, __D::Error> where
__D: _serde::Deserializer<'de> {
_serde::Deserializer::deserialize_identifier(__deserializer,
__FieldVisitor)
}
}
#[doc(hidden)]
struct __Visitor<'de> {
marker: _serde::__private228::PhantomData<Patch>,
lifetime: _serde::__private228::PhantomData<&'de ()>,
}
#[automatically_derived]
impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
type Value = Patch;
fn expecting(&self,
__formatter: &mut _serde::__private228::Formatter)
-> _serde::__private228::fmt::Result {
_serde::__private228::Formatter::write_str(__formatter,
"struct Patch")
}
#[inline]
fn visit_map<__A>(self, mut __map: __A)
-> _serde::__private228::Result<Self::Value, __A::Error>
where __A: _serde::de::MapAccess<'de> {
let mut __field0:
_serde::__private228::Option<Option<PathBuf>> =
_serde::__private228::None;
let mut __field1:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field2:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field3:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __field4:
_serde::__private228::Option<Option<String>> =
_serde::__private228::None;
let mut __collect =
_serde::__private228::Vec::<_serde::__private228::Option<(_serde::__private228::de::Content,
_serde::__private228::de::Content)>>::new();
while let _serde::__private228::Some(__key) =
_serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__field0 => {
if _serde::__private228::Option::is_some(&__field0) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("path"));
}
__field0 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<PathBuf>>(&mut __map)?);
}
__Field::__field1 => {
if _serde::__private228::Option::is_some(&__field1) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("git"));
}
__field1 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field2 => {
if _serde::__private228::Option::is_some(&__field2) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("branch"));
}
__field2 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field3 => {
if _serde::__private228::Option::is_some(&__field3) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("tag"));
}
__field3 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__field4 => {
if _serde::__private228::Option::is_some(&__field4) {
return _serde::__private228::Err(<__A::Error as
_serde::de::Error>::duplicate_field("rev"));
}
__field4 =
_serde::__private228::Some(_serde::de::MapAccess::next_value::<Option<String>>(&mut __map)?);
}
__Field::__other(__name) => {
__collect.push(_serde::__private228::Some((__name,
_serde::de::MapAccess::next_value_seed(&mut __map,
_serde::__private228::de::ContentVisitor::new())?)));
}
}
}
let __field0 =
match __field0 {
_serde::__private228::Some(__field0) => __field0,
_serde::__private228::None =>
_serde::__private228::de::missing_field("path")?,
};
let __field1 =
match __field1 {
_serde::__private228::Some(__field1) => __field1,
_serde::__private228::None =>
_serde::__private228::de::missing_field("git")?,
};
let __field2 =
match __field2 {
_serde::__private228::Some(__field2) => __field2,
_serde::__private228::None =>
_serde::__private228::de::missing_field("branch")?,
};
let __field3 =
match __field3 {
_serde::__private228::Some(__field3) => __field3,
_serde::__private228::None =>
_serde::__private228::de::missing_field("tag")?,
};
let __field4 =
match __field4 {
_serde::__private228::Some(__field4) => __field4,
_serde::__private228::None =>
_serde::__private228::de::missing_field("rev")?,
};
let __field5: Map<String, Value> =
_serde::de::Deserialize::deserialize(_serde::__private228::de::FlatMapDeserializer(&mut __collect,
_serde::__private228::PhantomData))?;
_serde::__private228::Ok(Patch {
path: __field0,
git: __field1,
branch: __field2,
tag: __field3,
rev: __field4,
rest: __field5,
})
}
}
_serde::Deserializer::deserialize_map(__deserializer,
__Visitor {
marker: _serde::__private228::PhantomData::<Patch>,
lifetime: _serde::__private228::PhantomData,
})
}
}
};Deserialize, #[automatically_derived]
impl ::core::clone::Clone for Patch {
#[inline]
fn clone(&self) -> Patch {
Patch {
path: ::core::clone::Clone::clone(&self.path),
git: ::core::clone::Clone::clone(&self.git),
branch: ::core::clone::Clone::clone(&self.branch),
tag: ::core::clone::Clone::clone(&self.tag),
rev: ::core::clone::Clone::clone(&self.rev),
rest: ::core::clone::Clone::clone(&self.rest),
}
}
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for Patch {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["path", "git", "branch", "tag", "rev", "rest"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.path, &self.git, &self.branch, &self.tag, &self.rev,
&&self.rest];
::core::fmt::Formatter::debug_struct_fields_finish(f, "Patch", names,
values)
}
}Debug)]
177pub struct Patch {
178 #[serde(skip_serializing_if = "Option::is_none")]
179 pub path: Option<PathBuf>,
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub git: Option<String>,
182 #[serde(skip_serializing_if = "Option::is_none")]
183 pub branch: Option<String>,
184 #[serde(skip_serializing_if = "Option::is_none")]
185 pub tag: Option<String>,
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub rev: Option<String>,
188 #[serde(flatten)]
189 pub rest: Map<String, Value>,
190}
191
192fn is_false(boolean: &bool) -> bool {
193 !*boolean
194}
195
196impl Default for EditionOrInherit {
197 fn default() -> Self {
198 EditionOrInherit::Edition(Edition::default())
199 }
200}
201
202impl<'de> Deserialize<'de> for EditionOrInherit {
203 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
204 where
205 D: Deserializer<'de>,
206 {
207 struct EditionOrInheritVisitor;
208
209 impl<'de> Visitor<'de> for EditionOrInheritVisitor {
210 type Value = EditionOrInherit;
211
212 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
213 formatter.write_str("edition")
214 }
215
216 fn visit_str<E>(self, s: &str) -> Result<Self::Value, E>
217 where
218 E: de::Error,
219 {
220 Edition::deserialize(StrDeserializer::new(s)).map(EditionOrInherit::Edition)
221 }
222
223 fn visit_map<M>(self, map: M) -> Result<Self::Value, M::Error>
224 where
225 M: de::MapAccess<'de>,
226 {
227 InheritEdition::deserialize(MapAccessDeserializer::new(map))?;
228 Ok(EditionOrInherit::Inherit)
229 }
230 }
231
232 deserializer.deserialize_any(EditionOrInheritVisitor)
233 }
234}
235
236impl Serialize for Dependency {
237 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
238 where
239 S: Serializer,
240 {
241 Dependency::serialize(self, serializer)
242 }
243}
244
245impl<'de> Deserialize<'de> for Dependency {
246 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
247 where
248 D: Deserializer<'de>,
249 {
250 struct DependencyVisitor;
251
252 impl<'de> Visitor<'de> for DependencyVisitor {
253 type Value = Dependency;
254
255 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
256 formatter.write_str(
257 "a version string like \"0.9.8\" or a \
258 dependency like { version = \"0.9.8\" }",
259 )
260 }
261
262 fn visit_str<E>(self, s: &str) -> Result<Self::Value, E>
263 where
264 E: de::Error,
265 {
266 Ok(Dependency {
267 version: Some(s.to_owned()),
268 path: None,
269 optional: false,
270 default_features: Some(true),
271 features: Vec::new(),
272 git: None,
273 branch: None,
274 tag: None,
275 rev: None,
276 workspace: false,
277 rest: Map::new(),
278 })
279 }
280
281 fn visit_map<M>(self, map: M) -> Result<Self::Value, M::Error>
282 where
283 M: de::MapAccess<'de>,
284 {
285 Dependency::deserialize(MapAccessDeserializer::new(map))
286 }
287 }
288
289 deserializer.deserialize_any(DependencyVisitor)
290 }
291}