These are previous names of the `__private` module -- first
`serde::export` then `serde::private` then `serde::__private` -- in all
cases marked `doc(hidden)` and documented as not public API. Leaving a
tombstone made rustc give a better diagnostic "module is private" rather
than "unresolved import". But the rename to `__private` was 2.5 years
ago in dd1f4b483e so it's unlikely anyone
is still benefiting from the tombstone at this point.
In 1.72+, this is fixed by https://github.com/rust-lang/rust/pull/112086.
error[E0659]: `core` is ambiguous
--> serde/src/lib.rs:227:13
|
227 | pub use core::ffi::CStr;
| ^^^^ ambiguous name
|
= note: ambiguous because of multiple potential import sources
= note: `core` could refer to a built-in crate
= help: use `::core` to refer to this crate unambiguously
note: `core` could also refer to the module defined here
--> serde/src/lib.rs:166:5
|
166 | / mod core {
167 | | #[cfg(not(feature = "std"))]
168 | | pub use core::*;
169 | | #[cfg(feature = "std")]
170 | | pub use std::*;
171 | | }
| |_____^
= help: use `self::core` to refer to this module unambiguously
In old versions of rustc (1.15 through 1.29) it would cause a warning if
this #[macro_use] was not present.
warning: proc macro crates and `#[no_link]` crates have no effect without `#[macro_use]`
--> serde/src/lib.rs:340:1
|
340 | extern crate serde_derive;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
These days serde_derive requires a newer compiler than that, so the
bogus warning would never occur.
Those deserializers are used to deserialize tuple or struct variants from Content
which is used by internally tagged enums and by flatten
FlatMapDeserializer is reached in the following tests:
flatten::enum_::externally_tagged::newtype
flatten::enum_::externally_tagged::struct_from_map
flatten::enum_::externally_tagged::struct_from_seq
flatten::enum_::externally_tagged::tuple
ContentDeserializer is reached in the following tests:
test_enum_in_internally_tagged_enum
test_internally_tagged_struct_variant_containing_unit_variant
The Container struct
struct Container {
#[serde(flatten)]
enum_field: Enum,
}
enum Enum {
Tuple(u32, u32),
}
now can be serialized to JSON as
{ "enum_field": [1, 2] }
Deserialization already works
Fixes (1):
flatten::enum_::externally_tagged::tuple