From f916ec6baa2f442c0d74707f8f7bba42302bfb0c Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 13 Sep 2025 12:12:05 -0700 Subject: [PATCH] Make size_hint private --- serde/src/private/de.rs | 6 +++--- serde_core/src/de/impls.rs | 2 +- serde_core/src/de/mod.rs | 1 - serde_core/src/de/value.rs | 3 ++- serde_core/src/private/content.rs | 5 ++--- serde_core/src/private/mod.rs | 3 +++ serde_core/src/{de => private}/size_hint.rs | 3 --- 7 files changed, 11 insertions(+), 12 deletions(-) rename serde_core/src/{de => private}/size_hint.rs (71%) diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index 804bed2e..c54f1307 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -209,11 +209,11 @@ mod content { use crate::lib::*; use crate::de::{ - self, size_hint, Deserialize, DeserializeSeed, Deserializer, EnumAccess, Expected, - IgnoredAny, MapAccess, SeqAccess, Unexpected, Visitor, + self, Deserialize, DeserializeSeed, Deserializer, EnumAccess, Expected, IgnoredAny, + MapAccess, SeqAccess, Unexpected, Visitor, }; pub use serde_core::__private::Content; - use serde_core::__private::ContentVisitor; + use serde_core::__private::{size_hint, ContentVisitor}; pub fn content_as_str<'a, 'de>(content: &'a Content<'de>) -> Option<&'a str> { match *content { diff --git a/serde_core/src/de/impls.rs b/serde_core/src/de/impls.rs index 4bd7e0f6..90b1bf6e 100644 --- a/serde_core/src/de/impls.rs +++ b/serde_core/src/de/impls.rs @@ -8,7 +8,7 @@ use crate::private; use crate::seed::InPlaceSeed; #[cfg(any(feature = "std", feature = "alloc"))] -use crate::de::size_hint; +use crate::private::size_hint; //////////////////////////////////////////////////////////////////////////////// diff --git a/serde_core/src/de/mod.rs b/serde_core/src/de/mod.rs index fa1fecdf..dc5c4495 100644 --- a/serde_core/src/de/mod.rs +++ b/serde_core/src/de/mod.rs @@ -120,7 +120,6 @@ pub mod value; mod ignored_any; mod impls; -pub mod size_hint; pub use self::ignored_any::IgnoredAny; pub use crate::seed::InPlaceSeed; diff --git a/serde_core/src/de/value.rs b/serde_core/src/de/value.rs index 8f9c0b48..3d5475de 100644 --- a/serde_core/src/de/value.rs +++ b/serde_core/src/de/value.rs @@ -24,7 +24,8 @@ use crate::lib::*; use self::private::{First, Second}; -use crate::de::{self, size_hint, Deserializer, Expected, IntoDeserializer, SeqAccess, Visitor}; +use crate::de::{self, Deserializer, Expected, IntoDeserializer, SeqAccess, Visitor}; +use crate::private::size_hint; use crate::ser; //////////////////////////////////////////////////////////////////////////////// diff --git a/serde_core/src/private/content.rs b/serde_core/src/private/content.rs index 7abdee7d..8052d1d4 100644 --- a/serde_core/src/private/content.rs +++ b/serde_core/src/private/content.rs @@ -1,7 +1,6 @@ -use crate::de::{ - self, size_hint, Deserialize, Deserializer, EnumAccess, MapAccess, SeqAccess, Visitor, -}; +use crate::de::{self, Deserialize, Deserializer, EnumAccess, MapAccess, SeqAccess, Visitor}; use crate::lib::*; +use crate::private::size_hint; // Used from generated code to buffer the contents of the Deserializer when // deserializing untagged enums and internally tagged enums. diff --git a/serde_core/src/private/mod.rs b/serde_core/src/private/mod.rs index f2c8649b..a8016f48 100644 --- a/serde_core/src/private/mod.rs +++ b/serde_core/src/private/mod.rs @@ -1,6 +1,9 @@ #[cfg(all(not(no_serde_derive), any(feature = "std", feature = "alloc")))] mod content; +#[doc(hidden)] +pub mod size_hint; + #[doc(hidden)] pub mod string; diff --git a/serde_core/src/de/size_hint.rs b/serde_core/src/private/size_hint.rs similarity index 71% rename from serde_core/src/de/size_hint.rs rename to serde_core/src/private/size_hint.rs index 92d19270..783281b4 100644 --- a/serde_core/src/de/size_hint.rs +++ b/serde_core/src/private/size_hint.rs @@ -1,8 +1,6 @@ -//! Provides helpers for creating size hints for container deserialization. #[cfg(any(feature = "std", feature = "alloc"))] use crate::lib::*; -/// Extracts the exact size of an iterator if it has a known upper bound and it matches the lower bound. pub fn from_bounds(iter: &I) -> Option where I: Iterator, @@ -10,7 +8,6 @@ where helper(iter.size_hint()) } -/// Returns conservative size estimate for a container, clamping the result to a maximum size. #[cfg(any(feature = "std", feature = "alloc"))] pub fn cautious(hint: Option) -> usize { const MAX_PREALLOC_BYTES: usize = 1024 * 1024;