/rust/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.219/src/private/mod.rs
Line | Count | Source (jump to first uncovered line) |
1 | | #[cfg(not(no_serde_derive))] |
2 | | pub mod de; |
3 | | #[cfg(not(no_serde_derive))] |
4 | | pub mod ser; |
5 | | |
6 | | // FIXME: #[cfg(doctest)] once https://github.com/rust-lang/rust/issues/67295 is fixed. |
7 | | pub mod doc; |
8 | | |
9 | | pub use crate::lib::clone::Clone; |
10 | | pub use crate::lib::convert::{From, Into}; |
11 | | pub use crate::lib::default::Default; |
12 | | pub use crate::lib::fmt::{self, Formatter}; |
13 | | pub use crate::lib::marker::PhantomData; |
14 | | pub use crate::lib::option::Option::{self, None, Some}; |
15 | | pub use crate::lib::ptr; |
16 | | pub use crate::lib::result::Result::{self, Err, Ok}; |
17 | | |
18 | | pub use self::string::from_utf8_lossy; |
19 | | |
20 | | #[cfg(any(feature = "alloc", feature = "std"))] |
21 | | pub use crate::lib::{ToString, Vec}; |
22 | | |
23 | | #[cfg(not(no_core_try_from))] |
24 | | pub use crate::lib::convert::TryFrom; |
25 | | |
26 | | mod string { |
27 | | use crate::lib::*; |
28 | | |
29 | | #[cfg(any(feature = "std", feature = "alloc"))] |
30 | 0 | pub fn from_utf8_lossy(bytes: &[u8]) -> Cow<str> { |
31 | 0 | String::from_utf8_lossy(bytes) |
32 | 0 | } |
33 | | |
34 | | // The generated code calls this like: |
35 | | // |
36 | | // let value = &_serde::__private::from_utf8_lossy(bytes); |
37 | | // Err(_serde::de::Error::unknown_variant(value, VARIANTS)) |
38 | | // |
39 | | // so it is okay for the return type to be different from the std case as long |
40 | | // as the above works. |
41 | | #[cfg(not(any(feature = "std", feature = "alloc")))] |
42 | | pub fn from_utf8_lossy(bytes: &[u8]) -> &str { |
43 | | // Three unicode replacement characters if it fails. They look like a |
44 | | // white-on-black question mark. The user will recognize it as invalid |
45 | | // UTF-8. |
46 | | str::from_utf8(bytes).unwrap_or("\u{fffd}\u{fffd}\u{fffd}") |
47 | | } |
48 | | } |